我在让JQuery Selector访问特定HTML元素时遇到问题。
我有一个<h2>
标记,我试图从中删除CSS类,然后根据一些用户操作为其添加一个新类。
我的<h2>
CSS定义为:
html .image_thumb ul li h2 {
color : #ffffff;
font-size: 1.5em;
margin: 5px 0; padding: 0;
}
我的HTML代码段如下:
'<div id="div_image_thumb" class="image_thumb">
<ul>
<li class="LI1">
<a href="./images/sample1.jpg"></a>
<div class="block">
<h2>This is my header</h2>
<small>Lorem Ipsum Article Titles Running </small>
<p>Lorem Ipsum Details...<br /><a href="" target="_blank">Read More</a> </p>
</div>
</li>
等...
我的JQuery调用如下:
$("div#div_image_thumb ul .LI1 div h2").removeClass();
但它不会删除该类。有什么想法吗?
答案 0 :(得分:2)
这不是您的问题,但您需要将参数传递给removeClass()
。像:
$('#foo').removeClass('active');
更改CSS以实际将类分配给h2,如下所示:
html .image_thumb ul li h2.myClass{
color : #ffffff;
font-size: 1.5em;
margin: 5px 0;
padding: 0;
}
改变这个:
<h2>This is my header</h2>
到此:
<h2 class="myClass">This is my header</h2>
让jQuery这样做:
$("div#div_image_thumb ul .LI1 div h2").removeClass('myClass');
试一试 - 祝你好运
答案 1 :(得分:1)
您要删除哪个班级?
h2没有与之关联的类。
也许更改你的css行通过某些类应用这些样式,并将该类添加到HTML源代码中的h2?
html .image_thumb ul li h2.startclass { color : #ffffff; font-size: 1.5em; margin: 5px 0; padding: 0; }
然后:
<div id="div_image_thumb" class="image_thumb">
<ul>
<li class="LI1">
<a href="./images/sample1.jpg"></a>
<div class="block">
<h2 class="startclass">This is my header</h2>
<small>Lorem Ipsum Article Titles Running </small>
<p>Lorem Ipsum Details...<br /><a href="" target="_blank">Read More</a> </p>
</div>
</li>
答案 2 :(得分:0)
似乎是一个不必要的长选择器,请尝试
$(".block > h2").removeClass();
是的,jimyi是对的,你的h2在你发布的片段中没有class属性
答案 3 :(得分:0)
试
$("#div_image_thumb div.block > h2").removeClass();
我将重申其他人已经说过的内容 - <h2>
元素没有定义类属性。
答案 4 :(得分:0)
您正在尝试删除实际未分配给H2的课程。
为特定位置的<h2>
元素定义了css属性,但是没有在那里定义实际的类名。更好的选择是使用jQuery.css()方法并设置单独的样式属性。
或者,您应该使用jQuery.addClass并为H2元素指定一组样式,以覆盖默认值。
答案 5 :(得分:0)
您的选择器不正确。尝试
div#div_image_thumb ul li.LI1 div h2
我建议尽量简化它。为什么不呢
".li1 h2"