1. 程式人生 > >從一堆div中選擇display=block的div

從一堆div中選擇display=block的div

<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