以jquery无法正常工作为目标的内联样式

时间:2016-02-10 15:59:35

标签: javascript jquery html css

这是输出HTML:

<ol id="aw-ln-filter-1-options" style="overflow: hidden; height: 250px;">
  <li style="padding-left:0px">
  </li>
  <li style="padding-left:10px">
  </li>
  <li style="padding-left:20px">
  </li>
  <li style="padding-left:10px">
  </li>
  <li style="padding-left:10px">
  </li>
</ol>

我的jQuery:

jQuery(function ($) {

if ($('#aw-ln-filter-1-options li').css('padding-left') == '20px')
    {
       $(body).hide();
    }
});

我只是使用身体隐藏作为测试。我在这里做错了什么?

1 个答案:

答案 0 :(得分:2)

您不能将css() - 函数应用于jQuery元素的集合。你必须迭代它们并分别测试每一个:

$('#aw-ln-filter-1-options li').each(
    function(i,e) {
      if ($(e).css('padding-left') == "20px") {
        $(e).css('background', 'red');
      }
    }
);

请参阅此处的示例:https://jsbin.com/hekokeqabu/edit?html,js,output

也许使用jQuery&#39; filter() - 函数和attribute Contains Selector [name*=”value”]选择器也可以,但我发现过去很难做到这一点。

但是,不知道你的用例,我建议不要使用内联样式作为任何选择操作的标记。一次重新设计将打破一切。使用CSS类。