使用JQuery,我的目标是:
<li style="margin-left: 15px;">blah<li>
使用此代码:
$(".block-category-navigation li[style='margin-left: 15px;']").addClass('sub-menu');
它在Firefox中运行良好,但在IE中根本不起作用。 IE会忽略样式选择器吗?无论如何,如果是这样
答案 0 :(得分:5)
在IE8的控制台中查看后,我发现它正在将'margin-left'变成'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');
}
});
更新
由于我不想给你不适用的代码,我在这里设置了这个工作示例:http://jsfiddle.net/YB7uV/6/
答案 1 :(得分:3)
您可以将marginLeft css属性与each()方法一起使用...不确定是否有更好的方法
$(".block-category-navigation li[style]").each(function(){
if($(this).css("marginLeft") == '15px')
$(this).addClass("myclass");
});
答案 2 :(得分:0)
我们需要查看包含ul
标记的代码以及使用所有样式的样式表。这可能是你处理CSS的方式,而不是jQuery。我会说你的连字符使用是令人担忧的,尽管如前所述,如果没有完整的图片,很难诊断。由于您在名称中添加了带连字符的类,因此jQuery可以将该类引用为属性而不是字符串。 Firefox在处理Javascript方面更优雅,因此如果命名关闭,IE可能会忽略类添加。您也可以尝试将该类从sub-menu
更改为submenu
,然后查看IE是否更好地播放。