2016-02-10 70 views
0

位置定位的內聯樣式是輸出HTML:使用jQuery不工作

<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(); 
    } 
}); 

我只是用身體隱藏的測試。我在這裏做錯了什麼?

+2

您的選擇器返回列表元素的集合,調用'.css('padding-left')'將只返回集合中第一個元素的值 – billyonecan

回答

2

您不能將css()函數應用於jQuery元素的集合。你必須重複他們和測試每個單獨的一個:這裏

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

見例如:使用jQuery的filter() - 函數連同attribute Contains Selector [name*=」value」]選擇也將工作https://jsbin.com/hekokeqabu/edit?html,js,output

也許吧,但我發現這真的很難過去了。

但是,不知道你的用例,我建議不要使用內聯樣式作爲任何選擇操作的標記。一次重新設計會打破一切。使用CSS類。

+0

完美謝謝。這是有道理的,它不適用於一系列元素。 不幸的是,有一個插件可以輸出我無法控制的列表項,因此定位內聯樣式似乎是唯一的方法。 – user3330820