jquery过滤有没有

FFi*_*ish 31 jquery filtering jquery-selectors

好的,我有列表项,有些有跨度,有些没有.
在我的活动中,我想在他们还没有时添加跨度.

has()工作得很好,但not()两者都增加了跨度?

HTML:

<ul>
    <li>
        <p>item</p>
        <span class="spn">empty span</span>
    </li>
    <li>
        <p>item 2</p>
    </li>
<ul>
<hr>
<a class="add-span"href="#">check</a>
Run Code Online (Sandbox Code Playgroud)

JS:

$("a.add-span").click(function() {
    $("li").each(function(index) {
        // $(this).has("span").find("span").append(" - appended");
        $(this).not("span").append('<span class="spn">new span<\/span>');
    })    
})
Run Code Online (Sandbox Code Playgroud)

Joh*_*ock 82

您可以使用以下组合:not:具有这样的选择器

$("a.add-span").click(function() {
    $("li:not(:has(span))").each(function(index) {
        $(this).append('<span class="spn">new span<\/span>');
    });
});
Run Code Online (Sandbox Code Playgroud)

这是一个演示 http://www.jsfiddle.net/xU6fV/

  • 那里+1那里:) (2认同)