我有一个包含几个.desc div的页面。我想在这些div中的最后一段中添加一些html。
我试过了..
$(".desc p:last").append(" <span class='orange readMore'>Read More</span> <span class='orange readLess'>Read Less</span>");
然而,这只是将它添加到整个页面中该div的最后一段。不是.desc div中的最后一个paragrapgh。如果这是有道理的......
<div class="desc">
<p>Description1</p>
</div>
<div class="desc">
<p>Description2 <span class="orange readMore" style="display: inline; ">Read More</span> <span class="orange readLess" style="display: none; ">Read Less</span></p>
</div>
答案 0 :(得分:1)
$(".desc").each(function(){
$(this).find('p:last').append("<span class='orange readMore'>Read More</span> <span class='orange readLess'>Read Less</span>");
});
这样的事可能吗?
答案 1 :(得分:1)
您应该使用:last-child
代替:
$(".desc p:last-child").append("Some stuff");
:last
选择器将始终将匹配的集合减少到该集合中的最后一个元素。它只会返回一个元素。
来自:last-child
的文档(以下引言完美地描述了您的确切问题):
虽然
:last
只匹配一个元素,但:last-child
可以匹配更多元素 不止一个:每个父母一个。
答案 2 :(得分:0)
试试这个:
$(“div.desc”)。each(function(){ $(this).find('p:last')。after(“Read More Read Less”); });