Javascript 为什么这个基于属性的选择器在jQuery中出现错误?
我确实有一个id为keylist的div,其中有一个无序列表。我需要.position().第一个可见元素的顶部。实际上Javascript 为什么这个基于属性的选择器在jQuery中出现错误?,javascript,jquery,Javascript,Jquery,我确实有一个id为keylist的div,其中有一个无序列表。我需要.position().第一个可见元素的顶部。实际上[display=block]不是正确的选择器 // Using Filter alert("Using Filter " +$("div#keylist ul li").filter(".blockDec").first().position().top); 使用:可见选择器 alert($("div#keylist ul li").filter("[display=blo
[display=block]
不是正确的选择器
// Using Filter
alert("Using Filter " +$("div#keylist ul li").filter(".blockDec").first().position().top);
使用:可见选择器
alert($("div#keylist ul li").filter("[display=block]").first().position().top);
我想这就是你需要的
alert($("div#keylist ul li:visible").first().position().top);
实际上
[display=block]
不是正确的选择器
// Using Filter
alert("Using Filter " +$("div#keylist ul li").filter(".blockDec").first().position().top);
使用:可见选择器
alert($("div#keylist ul li").filter("[display=block]").first().position().top);
我想这就是你需要的
alert($("div#keylist ul li:visible").first().position().top);
如前面答案中所述,
[display=block]
不是选择器。但如果您仍然坚持选择具有此css属性的li
元素,则可以按类进行选择
这里有几种方法可以达到同样的效果
alert($('ul > li').filter(function(){
return $(this).css('display') == 'block';
}).first().text());
由于您已经将父项设置为div#keylist
,因此可以使用find()
而不是使用filter()
filter和find之间有什么区别
您还可以查看并优化选择器
// Using Filter
alert("Using Filter " +$("div#keylist ul li").filter(".blockDec").first().position().top);
如前面答案中所述,[display=block]
不是选择器。但如果您仍然坚持选择具有此css属性的li
元素,则可以按类进行选择
这里有几种方法可以达到同样的效果
alert($('ul > li').filter(function(){
return $(this).css('display') == 'block';
}).first().text());
由于您已经将父项设置为div#keylist
,因此可以使用find()
而不是使用filter()
filter和find之间有什么区别
您还可以查看并优化选择器
// Using Filter
alert("Using Filter " +$("div#keylist ul li").filter(".blockDec").first().position().top);
@Rajesh不,它没有。请参阅[display=block]不是选择器。您必须向筛选器传递一个有效的css选择器。@Rajesh不,它没有。请参阅[display=block]不是选择器。你必须通过筛选一个有效的css选择器。display=block和visibility=visible是同一件事吗?@YogeshYadav否它不是同一个显示显示显示/隐藏要在Dom中显示的div并清空它的位置,但在可见性下元素位置仍然在它的位置上,但是否可见我希望选择器选择display=block的所有li。我该怎么做?“[display=block]不是正确的选择器”。这是完全正确的。只是没有达到OP的期望。此外,“li为是:可见表示显示:块不表示可见表示可见性”也不正确<代码>:可见
与显示:块
无关。非块元素也可以是可见的。@dfsq您在第二点上完全正确,但[display=block]不是正确的选择器[style=“display:block”]可能是正确的一个吗?显示=块和可见性=可见相同的东西?@YogeshYadav否其显示不相同显示显示/隐藏要在Dom中显示的div并清空其位置,但具有可见性时元素位置仍在其位置,但是否可见?我希望选择器选择显示=块的所有li。我该怎么做?“[display=block]不是正确的选择器”。这是完全正确的。只是没有达到OP的期望。此外,“li为是:可见表示显示:块不表示可见表示可见性”也不正确<代码>:可见与显示:块无关。非块元素也可以是可见的。@dfsq您在第二点上完全正确,但[display=block]不是正确的选择器[style=“display:block”]可能是正确的选择器