获取锚点内的文本值,但不获取其他html元素

时间:2013-10-24 21:36:22

标签: javascript jquery jquery-selectors

我已经捕获了一个<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")什么都不返回。如何在锚内部获得这个单一的文本字符串?

2 个答案:

答案 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();