使用jQuery,我瞄準了以下內容:使用JQuery,我如何使用IE中的樣式屬性來定位元素?
<li style="margin-left: 15px;">blah<li>
與此代碼:
$(".block-category-navigation li[style='margin-left: 15px;']").addClass('sub-menu');
在Firefox的偉大工程,但不能在IE在所有的工作。 IE忽略樣式選擇器嗎?無論如何如果是這樣的話
使用jQuery,我瞄準了以下內容:使用JQuery,我如何使用IE中的樣式屬性來定位元素?
<li style="margin-left: 15px;">blah<li>
與此代碼:
$(".block-category-navigation li[style='margin-left: 15px;']").addClass('sub-menu');
在Firefox的偉大工程,但不能在IE在所有的工作。 IE忽略樣式選擇器嗎?無論如何如果是這樣的話
在IE8的控制檯檢查之後,我發現它的轉向「與容限左'進入'MARGIN-LEFT'。
在IE這個選擇將工作:
$(".block-category-navigation li[style='MARGIN-LEFT: 15px']").addClass('sub-menu');
您既可以同時擁有上&小寫選擇,或者使用一個循環來檢查樣式屬性,像這樣:
$('.block-category-navigation li[style]').each(function() {
$this = $(this);
if ($this.attr('style').match(/margin-left: 15px/i)) {
$this.addClass('sub-menu');
}
});
UPDATE
因爲我不想讓你的代碼不起作用,所以我設置了這個工作例子在這裏:http://jsfiddle.net/YB7uV/6/
我的風格是「浮動:左」,我試過各種帽子和空間,但沒有運氣,但你的每個功能訣竅。謝謝。我認爲jQuery應該爲我們解決這個問題;( – henrijs 2011-05-17 21:55:36
我們需要看代碼,包括ul
標籤以及使用所有樣式的樣式表。這很可能是你處理CSS的方式,而不是jQuery。我會說你的連字符的使用是值得關注的,但正如我之前所說的,沒有完整的圖片很難診斷。既然你在名稱中添加了一個帶有連字符的類,jQuery可能會將該類引用爲屬性而不是字符串。 Firefox在處理Javascript時更加優雅,因此如果命名關閉,IE可能會簡單地忽略類的增加。您也可以嘗試將該課程從sub-menu
更改爲submenu
,然後查看IE是否更好。
可以使用marginLeft CSS屬性與每個()方法......不知道是否有一個更好的辦法,雖然
$(".block-category-navigation li[style]").each(function(){
if($(this).css("marginLeft") == '15px')
$(this).addClass("myclass");
});
如果你有很多列表「style = margin-left:15px;」我會把它放在一個類中,例如class =「margin_left」,然後你做這個$('li')。hasClass('margin_left')。addClass('sub-menu'); – nolabel 2011-03-03 17:13:39
我不能,使用可怕的CMS,因此我正在使用的尷尬的方法.... – 2011-03-03 17:19:33