代码之家  ›  专栏  ›  技术社区  ›  kender DaveL

jquery选择器-样式值

  •  2
  • kender DaveL  · 技术社区  · 14 年前

    我有一系列这样的发型:

    <div class="message" style="padding-left: 0px;">...</div>
    <div class="message" style="padding-left: 20px;">...</div>
    <div class="message" style="padding-left: 20px;">...</div>
    <div class="message" style="padding-left: 40px;">...</div>
    <div class="message" style="padding-left: 20px;">...</div>
    

    我想做一个选择器,让我得到填充大于20px的沙发。

    是否可以只使用jquery?或者我应该修改我的HTML树并添加一些属性来区分那些具有高填充值的元素?

    4 回复  |  直到 7 年前
        1
  •  4
  •   kender DaveL    14 年前

    您可以使用 filter 具有自定义功能。

    $('div.message').filter(function(){
         return parseInt($(this).css('padding-left')) > 20;
    });
    

    P.S.我不确定是什么 .css('padding') > 20 会回来的,我想我需要测试一下……

        2
  •  1
  •   rahul    14 年前

    你可以用 filter 为了这个。

    var elems = $('div.message').filter(function (){
                   return parseInt($(this).css("padding-left"),10) > 20;
                });
    
    alert ( elems.length );
    

    或者使用每一个你都可以这样做

    $(function(){
        var elems = new Array();
        $("div.message").each(function(){
            if(parseInt($(this).css("paddingLeft"), 10) > 20 )
            {
                elems.push($(this));
            }           
        });
    
        alert ( elems.length );
    });
    
        3
  •  1
  •   Piotr Rochala user736458    14 年前

    你可以用 $('.message') 选择器,然后 loop 通过你的元素找到一个 .css padding-left设置为任意值。

    第二个解决方案涉及 custom selectors .

    您可以修改我从日志中获取的代码:

    $.extend($.expr[':'], {
        redOrBlue: function(o) {
            return ($(o).css("color") == "red") 
                   || ($(o).css("color") == "blue");
        }
    });
    

    用途:

    $('div:redOrBlue')
    
        4
  •  0
  •   Andy E    14 年前

    你可以用 filter()

    var col = $('div').filter(function ()
    {
        return parseInt($(this).css("padding-left")) > 20;
    });
    

    或者您可以创建自己的选择器:

    $.expr[':'].myselector = function(obj, index, meta, stack){
       return parseInt($(obj).css("padding-left")) > 20;
    };
    var col = $("div:myselector");