【问题标题】:How can I select text from element by JQuery如何通过 JQuery 从元素中选择文本
【发布时间】:2012-02-29 21:24:01
【问题描述】:

例如我们有下面的代码(它可以是任何带有嵌套标签和文本的标签):

<td id='test'>
Hello
<a href='foo.html'>JS</a>
<noindex>Map</noindex>
Take me
<div>nice</div>
Skip me
</tr>

如何通过 jQuery 选择器检索“Take me”?
注意:$('#test').text() 将返回所有文本:Hello JS ...

【问题讨论】:

  • 这应该会有所帮助:stackoverflow.com/questions/298750/…
  • 您不能轻松地使用指定的 HTML。最好的办法是将“带我”包装在标签中(例如跨度),然后选择它。否则,您可以获得所有文本,如您所说,然后提取 noindex 和 div 标签之间的文本。不过,这确实不是一个好主意。

标签: javascript jquery dom jquery-selectors


【解决方案1】:

使用contents() 获取所有子节点,然后过滤查找符合包含"Hello" 条件的文本节点。

$('#test').contents().filter(function() {
    return this.nodeType == 3 && $.trim(this.data) == 'Take me';
})

jsFiddle.

【讨论】:

  • 明确过滤您已经知道的文本没有多大意义。 OP 需要明确一个“选择标准”。
  • @jAndy 这对我来说似乎并不奇怪。也许 OP 想要更改那个文本节点。
  • 这里没有反对意见。好吧,您可能是对的,但是对于 OP 来说,将这些 TextNodes 放入可查询元素中应该更加优雅。
  • @jAndy 同意,但有时 HTML 不容易修改(从像我目前的困境一样的古老 CMS 输出)。
猜你喜欢
  • 2010-11-02
  • 2013-12-04
  • 2017-10-23
  • 2012-07-06
  • 2018-05-13
  • 2011-12-02
  • 2014-03-11
  • 1970-01-01
相关资源
最近更新 更多