jq获取操作元素失败?

https://img1.mukewang.com/5ca6f37a0001103f08000631.jpg

https://img4.mukewang.com/5ca6f37b0001e9bd08000503.jpg

https://img3.mukewang.com/5ca6f37c000158e208000152.jpg

我想实现在点击按钮的时候 判断每个Li下dt下class名为db1的元素的display是不是none 如果是 当前整个Li隐藏,报错了 应该怎么写 ?求路过前辈指点 ~!!!谢谢

慕森卡
浏览 480回答 11
11回答

慕后森

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

holdtom

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

江户川乱折腾

$(function(){&nbsp; &nbsp; $('#btn').click(function(){&nbsp; &nbsp; &nbsp; &nbsp; for(var i = 0 ; i<$('#uls li').length ; i++){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var s = $('#uls li').eq(i).find('.db1');&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(s.css('display') == 'none'){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $('#uls li').eq(i).css('display','none')&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; })})

牧羊人nacy

你用的$('#uls li')[1]获取到的是原生js对象,不是jquery对象。保存原因显而易见原生对象调用jquery方法当然会报错。参考代码`$('#btn').click(function(){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$('.db1').each(function(i){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if($('.db1').eq(i).css('display')=='none'){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$('.db1').eq(i).parent().parent().hide();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;})&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;})`

翻翻过去那场雪

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

杨__羊羊

我又来了。[style="display:none"]这部分看上去好怪呀,如果能把这个东西改成class。估计会爽一点$('#uls&nbsp;.dbl[style="display:none"]').parent('li').hide();

跃然一笑

$(obj).eq(1)....这样就可以了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript