美文网首页让前端飞
一道有趣的JQ选择器题目

一道有趣的JQ选择器题目

作者: 姚冰coding | 来源:发表于2017-07-24 10:16 被阅读0次

    题目:要求活的a里面的12345元素,注意不包括span内元素

    <a href="">
        <span>热1</span>
        <span>热2</span>
        12345
    </a>
    

    解题:

    看起来很简单是吧?我也这么认为呢!然后我就写下来这几行代码:

        var $a=$("a").text();
        var $b=$("a:not(span)").text();
        
        console.log("$a=" + $a); //热1 热2 12345
        console.log("$b=" + $b); //热1 热2 12345
    

    注意:这里不能使用not
    :not() 从匹配元素集合中删除元素,这是jquery的遍历,在这里不合适。

    通过求助小伙伴,收获以下解法:

    方法1:

    var cA=$("a").clone();
    cA.find('span').remove();
    console.log(cA.text());//12345
    

    这里对$("a")进行克隆,然后删除其中的span,最后获取其中的text,就可以得到正确的text

    方法2:

    var a = var a = $('a').contents().filter(function() {
        return this.nodeType === 3;
    }).text();
    console.log(a);//12345
    

    这里取到a的值之后,使用文本节点进行过滤,只取得nodeType为3的节点,也就是12345

    相关文章

      网友评论

        本文标题:一道有趣的JQ选择器题目

        本文链接:https://www.haomeiwen.com/subject/cbnvkxtx.html