我有以下格式的表格,
<table>
<tr>
<td>Dynamic Text1</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td>Dynamic Text2</td>
</tr>
<tr>
<td>Dynamic Text3</td>
</tr>
<tr>
<td> </td>
</tr>
</table>
我希望最后td
包含除
之外的其他内容。在显示的示例标记中,这将是Dynamic Text3
,但我不会提前知道具体文本。这可以通过循环运行来实现,但有没有办法在不使用each
的情况下执行此操作?
答案 0 :(得分:6)
更新
$('td').filter(function(){
return !!$.trim($(this).text());
}).last().css('color', 'red');
演示:Fiddle
答案 1 :(得分:4)
更新这不包括OP需求,误解了OP的问题
使用:包含选择器:
var search = "Dynamic Text3";
$('table td:contains("'+search +'"):last').css('color','red');
答案 2 :(得分:4)
这应该现在可以使用
var td = $('table td:last');
function findTD() {
if (!td.text().replace(/\u00a0/g, "").length) {
if (td.parent().is(':not(:first)')) {
td = td.parent().prev().find('td');
return findTD();
} else {
return 'No text found!';
}
} else {
return td.text();
}
}
alert(findTD());
答案 3 :(得分:2)
您可以使用:contains
var lastTd = $('td:contains("' + text + '"):last');
答案 4 :(得分:0)
这是一个可能的POJS解决方案
HTML
<table>
<tr>
<td>Dynamic Text1</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td>Dynamic Text2</td>
</tr>
<tr>
<td>Dynamic Text3</td>
</tr>
<tr>
<td> </td>
</tr>
</table>
的Javascript
var treeWalker = document.createTreeWalker(document.body, NodeFilter.SHOW_ELEMENT, function (node) {
if (node.tagName === "TD" && node.textContent.trim()) {
return NodeFilter.FILTER_ACCEPT;
}
return NodeFilter.FILTER_SKIP;
}, false);
while (treeWalker.nextNode()) {}
console.log(treeWalker.currentNode !== document.body ? treeWalker.currentNode : null);
上
答案 5 :(得分:-1)
$("td").filter(function() { return $.text([this]) == 'Dynamic Text3'; })
.addClass("red");