jQuery-获取没有子文本的元素的文本

例如我们有这个文件


<div id="mydiv">

    some text here 

    <div id="inner div">

         text for inner div

    </div>

</div>

我只需要#mydiv像这样的一些代码来获取文本:


alert($('#mydiv').text());  // will alert "some text here"


智慧大石
浏览 545回答 3
3回答

慕娘9325324

就性能而言,当前接受的答案非常可怕,因此我不得不写一个更轻量的答案:$.fn.mytext = function() {&nbsp; &nbsp; var str = '';&nbsp; &nbsp; this.contents().each(function() {&nbsp; &nbsp; &nbsp; &nbsp; if (this.nodeType == 3) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; str += this.textContent || this.innerText || '';&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; });&nbsp; &nbsp; return str;};console.log($('#mydiv').mytext());

不负相思意

就像Ja͢ck的答案一样,但无需显式迭代(通过.each())并收集textContents:$('#mydiv').contents().filter(function(){return this.nodeType === 3}).text()或者,如果可以使用箭头功能:$('#mydiv').contents().filter((i, el) => el.nodeType === 3).text()
打开App,查看更多内容
随时随地看视频慕课网APP