这可能看起来与我的上一个问题(Find td with specific text, and operate on the td right after that one?)有点相似,但实际上这是不同的......
我这样有一张桌子,这次:
<table class="test">
<tr>
<td>Row 1</td><td>Text 1-1</td><td>Text 1-2</td> ...... <td>Text 1-n</td>
</tr>
<tr>
<td>Row 2</td><td>Text 2-1</td><td>Text 2-2</td> ...... <td>Text 2-n</td>
</tr>
<tr>
<td>Row 3</td><td>Text 3-1</td><td>Text 3-2</td> ...... <td>Text 3-n</td>
</tr>
<tr>
<td>Row 4</td><td>Text 4-1</td><td>Text 4-2</td> ...... <td>Text 4-n</td>
</tr>
<tr>
<td>Row 5</td><td>Text 5-1</td><td>Text 5-2</td> ...... <td>Text 5-n</td>
</tr>
</table>
基本上它有行,现在它有无限数量的列。
我需要使用特定文本缩小td
,然后对其右侧的所有td
进行操作。要查找的文本始终位于最左侧的td
s,因为它将是行标题文本。
例如,我可能希望找到一个td
文本Row 3
,然后我需要将xyz
附加到所有td
的文本中td
的权利(包含文字Row 3
)..
因此,在我的示例中,包含td
的{{1}}右侧的所有td
都会更改其文字:
Row 3
我该如何解决这个问题?
答案 0 :(得分:1)
还有其他类型的资源可让您根据您刚刚更改的代码选择DOM上的元素,例如nextAll()
或siblings()
:
$(".test td:contains(Row 3)")
.nextAll().text(function(){
return $(this).text() + "xyz"
});
答案 1 :(得分:1)
使用jquery,您可以使用contains selector,但它不合适,请使用jQuery.each()。
$("table.test td").each(function() {
if ($(this).html() == "Text 2-1")
$(this).append("xyz");
});
http://jsbin.com/IrEpeTE/1/edit
对于行使用&#34; eq()&#34;,得到第5行:
$("table.test tr:eq(4) td").each(function() {
if ($(this).html()!="Row 5")
$(this).append("xyz");
});
或:
$("table.test tr td").each(function() {
if ($(this).parent().children().html()=="Row 5" && $(this).html()!="Row 5")
$(this).append("xyz");
});