用jq获取元素内文本,但不包括其子元素内的文本值的方法


<li id="listItem">
    This is some text
    <span id="firstSpan">First span text</span>
    <span id="secondSpan">Second span text</span>
</li>

假设上面一段代码,我们想获取 'This is some text' 这段文本值,

jq提供的方法是 text(),但结果打印的是 ‘This is some textFirst span textSecond span text’,

可见text()方法返回的值是元素内所有子元素内的文本值,那么如果只想获取 'This is some text' 怎么办呢?

有下面几种方法:

1、jq方法

$("#listitem")
    .clone()    //复制元素
    .children() //获取所有子元素
    .remove()   //删除所有子元素
    .end()  //回到选择的元素
    .text();//获取文本值

2、jq方法

$("#listItem").contents().filter(function(){ 
  return this.nodeType == 3; 
})[0].nodeValue = "The text you want to replace with" 

 

3、js方法

document.getElementById("listItem").childNodes[0].nodeValue;

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM