为了账号安全,请及时绑定邮箱和手机立即绑定

jq获取操作元素失败?

jq获取操作元素失败?

慕森卡 2019-03-21 18:15:38
我想实现在点击按钮的时候 判断每个Li下dt下class名为db1的元素的display是不是none 如果是 当前整个Li隐藏,报错了 应该怎么写 ?求路过前辈指点 ~!!!谢谢
查看完整描述

11 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

jQ兼容获取原生DOM对象的快捷方法就是形如$('#uls li')[1]取数组元素的这种形式,你这样写了之后返回的是原生DOM对象,而原生DOM对象是没有.children()这个方法的。所以你需要把后边的数组元素引用改成.eq(1)的形式,亦即$('#uls li').eq(1),这样返回的是jQ对象,你才能正常的调用jQ方法。

查看完整回答
反对 回复 2019-04-05
?
holdtom

TA贡献1805条经验 获得超10个赞

可以试一下$("#uls li").eq(1)


查看完整回答
反对 回复 2019-04-05
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

$(function(){

    $('#btn').click(function(){


        for(var i = 0 ; i<$('#uls li').length ; i++){

            var s = $('#uls li').eq(i).find('.db1');

            if(s.css('display') == 'none'){

                $('#uls li').eq(i).css('display','none')

            }

        }

    })

})


查看完整回答
反对 回复 2019-04-05
?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

你用的$('#uls li')[1]获取到的是原生js对象,不是jquery对象。

保存原因显而易见原生对象调用jquery方法当然会报错。

参考代码

`$('#btn').click(function(){


             $('.db1').each(function(i){

                 if($('.db1').eq(i).css('display')=='none'){

                     $('.db1').eq(i).parent().parent().hide();

                 }

             })

         })`


查看完整回答
反对 回复 2019-04-05
?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

console.log($("#uls li")[1].children[0].children[1]);

$("#uls li")[1].children[0].children[1].style.color="red";


查看完整回答
反对 回复 2019-04-05
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

我又来了。[style="display:none"]这部分看上去好怪呀,如果能把这个东西改成class。估计会爽一点

$('#uls .dbl[style="display:none"]').parent('li').hide();


查看完整回答
反对 回复 2019-04-05
?
跃然一笑

TA贡献1826条经验 获得超6个赞

$(obj).eq(1)....这样就可以了


查看完整回答
反对 回复 2019-04-05
  • 11 回答
  • 0 关注
  • 479 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信