猿问

使用.text()只检索不嵌套在子标记中的文本

使用.text()只检索不嵌套在子标记中的文本

如果我有这样的html:

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

我试着用.text()检索字符串“这是一些文本”,但如果我说$('#list-item').text(),我得到了“这是一些TextFirst span textSecond span文本”。

有没有办法(也可能是移除,通过类似的方法).text(""))仅仅是标签中的自由文本,而不是其子标记中的文本?

HTML不是我写的,所以我必须使用它。我知道在编写html时用标记包装文本很简单,但同样,html是预先编写的。


RISEBY
浏览 566回答 4
4回答

米琪卡哇伊

我喜欢基于clone()发现方法这里只获取父元素中的文本。为便于参考而提供的代码:$("#foo") &nbsp;&nbsp;&nbsp;&nbsp;.clone()&nbsp;&nbsp;&nbsp;&nbsp;//clone&nbsp;the&nbsp;element &nbsp;&nbsp;&nbsp;&nbsp;.children()&nbsp;//select&nbsp;all&nbsp;the&nbsp;children &nbsp;&nbsp;&nbsp;&nbsp;.remove()&nbsp;&nbsp;&nbsp;//remove&nbsp;all&nbsp;the&nbsp;children &nbsp;&nbsp;&nbsp;&nbsp;.end()&nbsp;&nbsp;//again&nbsp;go&nbsp;back&nbsp;to&nbsp;selected&nbsp;element &nbsp;&nbsp;&nbsp;&nbsp;.text();

Smart猫小萌

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

神不在的星期二

更容易和更快:$("#listItem").contents().get(0).nodeValue
随时随地看视频慕课网APP
我要回答