HTML 这样
<div> <span> thanks </span> a lot </div>
但是通过 $("div").ext();
结果把 span 标签里的内容也输出了 如何只获取 a lot
?
![]() | 1 wellsc 2016-03-18 19:43:48 +08:00 via Android 看 api 文档去吧。 |
![]() | 2 yangg 2016-03-18 20:06:44 +08:00 via iPhone ![]() 非 IE 可以$(div)[0].childNodes[1].nodeValue IE 要清空文本节点 |
![]() | 3 icebitch OP @yangg 谢谢!!! 我就在 Firefox 下写个小脚本..组合替换下标题 请问这方面的内容要搜什么看呢 , 我看的 W3 教程 , 没有提到这种用法的~ 搜索也搜索不来 , 嵌套标签什么的都搜不到可以参考的内容!!! |
![]() | 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 标签就可以了。由于操作很快,基本不会元素删除恢复的视觉效果。 建议尽量一个萝卜一个坑,一个值域一个标签 |
5 Kokororin 2016-03-18 20:19:36 +08:00 var clOne= $('div').clone(); clone.children().remove(); console.log(clone.text()); |
![]() | 6 chairuosen 2016-03-18 20:21:26 +08:00 换一种思路 $('div').clone().children().remove().end().text() |
![]() | 7 coolzjy 2016-03-18 20:56:54 +08:00 遍历下 childNode 取 nodeType 为 3 的即可吧 |
![]() | 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 |