使用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