V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
icebitch
V2EX  ›  jQuery

如何获取当前元素的文本内容, 但不包含子元素内的文本内容?

  •  
  •   icebitch · 2016-03-18 19:06:35 +08:00 · 3939 次点击
    这是一个创建于 3172 天前的主题,其中的信息可能已经有所发展或是发生改变。

    HTML 这样

    <div>
    	<span> thanks </span>
    a lot
    </div>
    

    但是通过 $("div").text(); 结果把 span 标签里的内容也输出了 如何只获取 a lot?

    9 条回复    2016-03-19 17:52:17 +08:00
    wellsc
        1
    wellsc  
       2016-03-18 19:43:48 +08:00 via Android
    看 api 文档去吧。
    yangg
        2
    yangg  
       2016-03-18 20:06:44 +08:00 via iPhone   ❤️ 1
    非 IE 可以$(div)[0].childNodes[1].nodeValue IE 要清空文本节点
    icebitch
        3
    icebitch  
    OP
       2016-03-18 20:16:11 +08:00
    @yangg 谢谢!!! 我就在 Firefox 下写个小脚本..组合替换下标题
    请问这方面的内容要搜什么看呢 , 我看的 W3 教程 , 没有提到这种用法的~ 搜索也搜索不来 , 嵌套标签什么的都搜不到可以参考的内容!!!
    Lpl
        4
    Lpl  
       2016-03-18 20:19:30 +08:00
    var $temp = $("div span");
    $temp.remove();
    console.log($("div").text());
    $("div").prepend($temp);

    大概就这个吧,思路是:先把 span 标签删除,然后获取 div 的内容,然后恢复 span 标签就可以了。由于操作很快,基本不会元素删除恢复的视觉效果。
    建议尽量一个萝卜一个坑,一个值域一个标签
    Kokororin
        5
    Kokororin  
       2016-03-18 20:19:36 +08:00
    var clone = $('div').clone();
    clone.children().remove();
    console.log(clone.text());
    chairuosen
        6
    chairuosen  
       2016-03-18 20:21:26 +08:00
    换一种思路 $('div').clone().children().remove().end().text()
    coolzjy
        7
    coolzjy  
       2016-03-18 20:56:54 +08:00
    遍历下 childNode 取 nodeType 为 3 的即可吧
    MOxFIVE
        8
    MOxFIVE  
       2016-03-19 02:34:38 +08:00
    $("div").contents().not($("div").children()).text();

    $("div").contents().filter(function(){return this.nodeType == 3;}).text();

    http://codepen.io/MOxFIVE/pen/rejRZr?editors=1010
    icebitch
        9
    icebitch  
    OP
       2016-03-19 17:52:17 +08:00
    @MOxFIVE 这个刁 , 学习了!!!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2646 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 11:30 · PVG 19:30 · LAX 03:30 · JFK 06:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.