2

我有一个表,其中包含这样的行:

<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 包装集,然后我可以将它们发送到函数,如果它们不适合它们的单元格,它将截断它们。

我不知道如何获得包装好的套装。

正在尝试这个,但它不起作用:

var textNodes = $('#resultsTable .objectRow')
.contents()
.filter(function(){ return this.nodeType == 3; })
.filter(function(){return this.nodeValue != null});
4

1 回答 1

2

jQuery 的text函数返回元素的组合文本内容,因此您不必担心 nodeTypes 等。因此,您可以过滤所有文本内容为空白的元素:

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

这将最终为您提供行中包含任何文本的所有s,并且您可以通过再次获取表格单元格<td>的值来做您想做的事情。text()

关于您的评论,应该这样做:

$('tr.objectRow', '#resultsTable').find('*').contents().filter(function() {
    return $.trim($(this).text()) != '';
});
于 2009-06-19T00:45:10.383 回答