0

我已经捕获了一个<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")一无所获。如何在锚点内获取这个单数文本字符串?

4

2 回答 2

2

您要做的是获取元素的文本而不获取子元素的文本。

基本上,您想要克隆<a>元素,选择它的子元素,删除子元素(表格),然后捕获剩余的文本。

$('a').clone().children().remove().end().text()

这是一个小提琴,我只是将上述代码的结果通知给浏览器。:http: //jsfiddle.net/6pBqY/

我不确定这是否适用于所有情况,但它似乎适用于您的示例。

我从这个网站获得了这个解决方案,您可以访问该网站以获取更多信息:http: //viralpatel.net/blogs/jquery-get-text-element-without-child-element/

于 2013-10-24T21:44:16.100 回答
1

你必须从字符串中删除 html 标签。我认为这个变体更好:

var content = document.getElementByTagName('a').innerHTML;  var text = $(content).text();
于 2013-10-24T23:19:36.813 回答