一道有趣的JQ选择器题目

题目:要求活的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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,248评论 19 139
  • 原文 链接 关注公众号获取更多资讯 一、基本类型介绍 1.1 Node类型 DOM1级定义了一个Node接口,该接...
    前端进阶之旅阅读 3,977评论 7 34
  • 根据小码哥扩展班所做的笔记。 修改spec文件: 不用更新版本,提交代码:,,重新打标签:,再提交spec文件: ...
    健了个平_24阅读 568评论 0 0
  • 逃来逃去,诶世界如此之大,为什么没有我呆着舒服的地方。因为你以为的是因为身体呆在一个地方糊口,身体把心灵囚禁...
    胡一坨阅读 269评论 0 2
  • 鱼妈:鱼爸去给我盛饭 鱼爸:自己去(嫌弃脸) 鱼妈:你再说一遍(威胁脸) 鱼爸:奥对,今天你生日奥,应该为你考虑,...
    我有第三只眼阅读 165评论 0 0