我对jQuery选择器不太熟悉,所以想要一些帮助。
我有一张这样的表:
<table class="test">
<tr>
<td>Section Heading 1</td><td>Section Text 1</td>
</tr>
<tr>
<td>Section Heading 2</td><td>Section Text 2</td>
</tr>
<tr>
<td>Section Heading 3</td><td>Section Text 3</td>
</tr>
<tr>
<td>Section Heading 4</td><td>Section Text 4</td>
</tr>
<tr>
<td>Section Heading 5</td><td>Section Text 5</td>
</tr>
</table>
我需要做的是找到包含特定文字的td
,并对其右侧td
中的文字进行操作。
例如,假设我想找到包含文本td
的{{1}},并将Section Heading 4
中包含的文本连接到文本{{1} },以便td
变为hello
..
哪个jQuery选择器可以用于此目的?
答案 0 :(得分:14)
我的初步答案忽略了更新文本的问题,以下是包含以下内容的示例:
$(".test td:contains(Heading 1)")
.next().text(function(){
return $(this).text() + " Hello"
});
我不相信你可以使用append方法,因为我认为它只能用于添加html标签。
答案 1 :(得分:7)
首先,您要使用:contains:
jQuery( "td:contains(text)" );
jQuery( "td:contains(text)" ).next().append("Hello");
这是一个用于演示用法的工作片段:
jQuery(function($) {
$("td:contains(Text to Find)").next().append(" Hello");
});
table {
border-collapse: collapse;
}
td {
border: 1px solid #ccc;
padding: 2px 5px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<table>
<tbody>
<tr>
<td>Some Text</td>
<td>More Text</td>
<td>YMT</td>
</tr>
<tr>
<td>Text to Find</td>
<td>Modify:</td>
<td>Do nothing here</td>
</tr>
</tbody>
</table>
答案 2 :(得分:2)
jQuery有:contains()
伪类:
$('td:contains("Section Heading 4")').next().text(function(_,t){
return t + ' Hello';
})
小心,:contains
区分大小写。
答案 3 :(得分:0)
这应该有用......
$(function() {
var searchText = "Section Heading 3";
var output = "";
$("td").each(function(i, item) {
if($(item).html() == searchText) {
output = $(item).html();
output += $(item).closest("td").html()
}
});
console.log(output);
});
这是一个jsFiddle http://jsfiddle.net/5ELLM/
答案 4 :(得分:0)
var tds=$("table.test").find("td");
var td,i;
for(i=0;i<tds.size();i++) {
td=tds.eq(i);
if (td.text().indexOf("Section Heading 4")!=-1) {
td.next().text(td.next().text()+"hello");
}
}
答案 5 :(得分:0)
获取信息
var data ="Search string"
$('#table1 td:contains('+data+')').next().text();