欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

从一堆div中选择display=block的div display=none

shiping1 的头像

从一堆div中选择display=block的div

分类: 前端开发 207人阅读 评论(0) 收藏 举报
  1. <pre name="code" class="html">$(".commonCss").each(function (i,element) {  
  2.         if($(element).css("display") == 'block'){  
  3.              var id = element.id;  
  4.          }  
  5. })  

$('.commonCss').each(function(){ if($(this).css('display') == 'block'){ alert(this.id);//可行 }})//注意:this也需要$()包起来,才能起到选择的作用
  1. jQuery("#menuMain>div>ul>li:visible");和jQuery("#menuMain>div>ul>li:hidden");    
思路:
先获取这些div,然后判断其属性中的值是否是隐藏的
例子:
  1. function () {  
  2.            alert($("div[style='display: block']").length); //为什么匹配不到  
  3.         }  
  4.         );  
  5.    
  6. <div style="display: block;">  
  7.         <input id="Button1" type="hidden" name="input1" value="button" /><br />  
  8.         <input id="Button2" type="button" value="button" /><br />  
  9.     </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-Z2dcjX5VumEcvvT...

来自   http://blog.csdn.net/kungfu_panda/article/details/38658103
普通分类: