选择不是最后一个兄弟的所有最后元素

时间:2017-05-13 09:36:34

标签: jquery

我的结构类似于以下结构:

with open("./testconf") as configs:
    for config in configs:
        if config.startswith("#"):
            continue
        keyword, value = config.split("=")

我想在类<p> <span class="top">1</span> <span class="top">2</span> <span>3</span> </p> <p> <span class="top">4</span> <span class="top">5</span> </p> <p> <span class="top">6<span> <span>7</span> <span>8</span> </p> 的最后<span>附加一些内容,但前提是它不是段落中的最后一个元素。换句话说,应该有另一个top没有类span作为它之后的兄弟。

结果应该是元素2和6被改变,其他top不是最后一个或没有以下项目。

我尝试了以下操作,但它不起作用:

span

2 个答案:

答案 0 :(得分:2)

您可以通过以下方式获得此结果:

$("span.top+:not(.top)").prev()

“使用类<span>查找.top,然后选择以下元素,前提是它没有.top;检索匹配元素的上一个兄弟”

所以这与1或4不匹配,因为+:not(.top)失败(下一个兄弟有.top)。它不会匹配5,因为没有下一个兄弟检查.top或不。它不会匹配3,7,8,因为它们没有.top开头。只留下2和6。

答案 1 :(得分:2)

$("p").each(function() {
    if($(this).find("span.top:last").next().is("span")) {
        $(this).find("span.top:last").append("...");
    }
})