從一堆div中選擇display=block的div
阿新 • • 發佈:2018-12-26
<pre name="code" class="html">$(".commonCss").each(function (i,element) {
if($(element).css("display") == 'block'){
var id = element.id;
}
})
$('.commonCss').each(function(){ if($(this).css('display') == 'block'){ alert(this.id);//可行 }})//注意:this也需要$()包起來,才能起到選擇的作用
思路:jQuery("#menuMain>div>ul>li:visible");和jQuery("#menuMain>div>ul>li:hidden");
先獲取這些div,然後判斷其屬性中的值是否是隱藏的例子:
function () { alert($("div[style='display: block']").length); //為什麼匹配不到 } ); <div style="display: block;"> <input id="Button1" type="hidden" name="input1" value="button" /><br /> <input id="Button2" type="button" value="button" /><br /> </div>
問題:為什麼得到的是0而不是1?
回答:
因為你找的是屬性style="display: block;" 而你輸入的卻是div[style='display: block'] jQuery的[] 選擇器是找屬性值完全等於某個值 也就是說 少一個分號 少一個空格 那都無法匹配到的 如果你完全可以保證 style=""裡面肯定等於 display: block; 而且 空格什麼都匹配那才能成功 這裡 就是因為你少了一個分號吧 當然 你可以設定 $("div[style^='display: block']"); ^=就是說 以display: block 開頭的 或者 把你那分號加上試試 這樣做偶合性太高了 差個空格都不行 最好的辦法就是 $("div").each(function(){//通過each來遍歷 if($(this).css("display")=='block'){ //通過$(this).css("css名") 來獲取當前遍歷元素的display值 //這裡就是display=block的 } })
引用地址:http://zhidao.baidu.com/link?url=VzyFk04NytD2XKNozEq3wTgXON-5J6ZygPHJVUPZIdUX_Uzj_Cv-Z2dcjX5VumEcvvTu8Y4LpvYs9k28NfUV-K