1

我有一个包含多个 .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 中的每个最后一个段落。如果这有意义...

<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>
4

3 回答 3

1
$(".desc").each(function(){
    $(this).find('p:last').append("<span class='orange readMore'>Read More</span> <span class='orange readLess'>Read Less</span>");
});

可能是这样的?

于 2012-06-08T11:19:54.437 回答
1

您应该:last-child改用:

$(".desc p:last-child").append("Some stuff");

选择:last器将始终将匹配的集合减少到该集合中的最后一个元素。它只会返回一个元素。

来自文档:last-child(以下引用完美地描述了您的确切问题):

While :last matches only a single element, :last-child can match more than one: one for each parent.

于 2012-06-08T11:20:18.117 回答
0

试试这个:

$("div.desc').each(function () { $(this).find('p:last').after(" 阅读更多 阅读更少"); });

于 2012-06-08T11:18:57.663 回答