jquery过滤没有

前端之家收集整理的这篇文章主要介绍了jquery过滤没有前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
好的,我有列表项,有些有一个跨度,有些没有。
在我的活动中,我想在没有任何时候添加跨度。

has()工作正常,但不是()添加跨度?

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>

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>');
    })    
})

解决方法

您可以使用这样的 :not:has选择器的组合
$("a.add-span").click(function() {
    $("li:not(:has(span))").each(function(index) {
        $(this).append('<span class="spn">new span<\/span>');
    });
});

这是demo http://www.jsfiddle.net/xU6fV/

猜你在找的jQuery相关文章