将类添加到父容器中的最后一个p元素

时间:2013-09-11 12:01:58

标签: jquery html5 css3 dom

我正在尝试使用以下jQuery代码在我的标记中的最终

< p >
标记中添加一个类。

$('div.jobpost_body p:last').addClass('classificationsContainer');

我现在能够在现代浏览器中使用CSS3做到这一点,但是我需要支持IE7。由于某些原因,这段代码没有将'classificationsContainer'类应用于div中的最后一个p标记,其中包含一个jobpost_body类,如上所述。

有什么方法可以重构这个语句,以确保跨浏览器兼容性?

我的html可以在下面找到:

<div class="jobpost_body">
<h2>
<a href="#">Academic Administrator</a>
</h2>
<p>Lorem ipsum</p>
<p>
 <span class="jobclass even organisation">
 <span class="jobclass_type">Organisation</span>
 <span class="jobvalue">&nbsp;Test</span>&nbsp;</span>
 <span class="jobclass uneven school/department">
 <span class="jobclass_type">School/Department:</span>
 <span class="jobvalue">&nbsp;Test</span>&nbsp;</span>
 <span class="jobclass even based_at">
 <span class="jobclass_type">Based at:</span>
 <span class="jobvalue">&nbsp;Oxfordshire</span>&nbsp;</span>
 <span class="jobclass uneven hours_of_work">
 <span class="jobclass_type">Hours of work:</span>
 <span class="jobvalue"> &nbsp;37 hours per week</span>&nbsp;</span>
 </p>
</div>

我还没有创建html所以请不要评论它是如何无效的等等。

3 个答案:

答案 0 :(得分:2)

给.last()一个镜头:

$('div.jobpost_body p').last().addClass('classificationsContainer');

支持IE 7。 的 JsFiddle

答案 1 :(得分:2)

使用find()选择子内容,它的选择速度要快得多:

$('div.jobpost_body').find("p").last().addClass('classificationsContainer');

答案 2 :(得分:0)

不幸的是,上面提供的解决方案似乎都不适用于我的解决方案。因此,我必须通过不同的方式来解决这个问题。因为这&lt; p> tag将始终包含至少一个类为.jobclass的子类,然后我可以简单地将一个类应用于此选择器的父级以定位最后一个&lt; p>标签

    $('span.jobclass').parent().addClass('classificationsContainer');

感谢所有提供解决方案的人,但对于我的情况来说,这似乎是最好的。