alert($("div#keylist ul li").filter("[display=block]").first().position().top);
我有一个id为密钥列表的div,其中有一个无序列表。我想要.position()。第一个可见元素的顶部。
答案 0 :(得分:4)
Actualy [display=block]
不是正确的选择器
使用:可见选择器
alert($("div#keylist ul li:visible").first().position().top);
我认为这就是你需要的
alert($('ul > li').filter(function(){
return $(this).css('display') == 'block';
}).first().text());
答案 1 :(得分:0)
如上所述,之前的答案[display=block]
不是选择器。但是,如果您仍然坚持选择具有此css属性的li
元素,则可以按类
以下几种方法可以实现相同的
// Using Filter
alert("Using Filter " +$("div#keylist ul li").filter(".blockDec").first().position().top);
由于您已将父级设为div#keylist
,因此您可以使用find()
而不是使用filter()
Here是filter & find
//Using find .Here it will find all child element of ul
alert("Using Find " +$("div#keylist ul").find(".blockDec").first().position().top);
//Optimizing the jQuery selector
alert("Optimized " +$("#keylist").find(".blockDec:first").position().top);