使用jQuery查找表中的文本

使用jQuery查找表中的文本,jquery,textnode,Jquery,Textnode,我有一个表,其中有如下行: <tr id="" class="objectRow"> <td class="bulkSelector"><input id="" type="checkbox" value=""/></td> <td class="favorite"></td> <td class="name"><a id="" class="" href="">Ut Urna Nisl&

我有一个表,其中有如下行:

<tr id="" class="objectRow">
  <td class="bulkSelector"><input id="" type="checkbox" value=""/></td>
  <td class="favorite"></td>
  <td class="name"><a id="" class="" href="">Ut Urna Nisl</a></td>
  <td class="description"><p>Nam feugiat tincidunt massa nec venenatis. Mauris egestas consectetur magna</p></td>
  <td class="modifiedDate"><p>5/20/2009</p></td>
</tr>
jQuery的函数返回元素的组合文本内容,因此您不必担心节点类型之类的问题。因此,您可以只筛选文本内容为空的所有元素:

$('tr.objectRow', '#resultsTable').find('td').filter(function() {
    return $.trim($(this).text()) != '';
});
这将最终为您提供行中所有包含任何文本的
,您可以通过再次获取表格单元格的
text()
值来执行您想要执行的操作

关于您的评论,这应该可以做到:

$('tr.objectRow', '#resultsTable').find('*').contents().filter(function() {
    return $.trim($(this).text()) != '';
});

谢谢我问的问题不对。我需要的集合是包含文本的元素。在我的示例中,这将由一个a节点和两个p节点组成。
$('tr.objectRow', '#resultsTable').find('*').contents().filter(function() {
    return $.trim($(this).text()) != '';
});