我已经捕获了一个<a>
标记并将其作为jQuery元素。我想获得它之前的文字</a>
。但问题是那里也有一张桌子。
<a>
Text content I want
<table>
<tr>
<td>
lots of tds
</td>
</tr>
</table>
</a>
text()
告诉我一切,text(":not('table')")
显然是胡说八道,text().not("table")
什么都不返回。如何在锚内部获得这个单一的文本字符串?
答案 0 :(得分:2)
您要做的是获取元素的文本而不获取子元素的文本。
基本上,您希望克隆<a>
元素,选择它的子元素,删除子元素(表格),然后捕获剩余的文本。
$('a').clone().children().remove().end().text()
这是一个小提琴,我只是将上述代码的结果提醒给浏览器: http://jsfiddle.net/6pBqY/
我不确定这会在所有情况下都有效,但它似乎与你的例子一样正常。
我从这个网站派生了这个解决方案,您可以访问该网站以获取更多信息: http://viralpatel.net/blogs/jquery-get-text-element-without-child-element/
答案 1 :(得分:1)
你必须从字符串中删除html标签。我认为这种变体更好:
var content = document.getElementByTagName('a').innerHTML; var text = $(content).text();