我需要获取包含特定文本的td
元素所在的tr
元素,即td
元素仅包含该文本(因此需要使用text = 'foo'
而不是text contains 'foo'
逻辑)。
因此,我需要相当于以下“伪jQuery”:
var tableRow = $(table td[text = 'foo']).parent('tr');
有人能提供正确的语法吗?
var tableRow = $("td").filter(function() {
return $(this).text() == "foo";
}).closest("tr");
我知道这是一个旧帖子,但我想分享一种搜索表格中字符串的替代方法[不如之前那种方法稳定,但更简单]。
$("tr:contains(needle)");
//其中needle是你要搜索的文本。
例如,如果你要搜索文本'box',那么代码应该是:
$("tr:contains('box')");
这会返回所有包含此文本的元素。如果返回多个元素,则可以使用其他条件来缩小范围。$("td:contains('box')");
来获取包含该文本的确切列。 - stomtech$("td:contains('box')");
来获取找到文本的确切列。 - stomtech$(function(){
var search = 'foo';
$("table tr td").filter(function() {
return $(this).text() == search;
}).parent('tr').css('color','red');
});
如果某一行中的单元格文本为 'foo',则会将该行文本变为红色。
$.each($(".table tbody").find("tr"), function () {
if ($(this).text().toLowerCase().replace(/\s+/g, '').indexOf(searchText.replace(/\s+/g, '').toLowerCase()) == -1)
$(this).hide();
else
$(this).show();
});
<input type="text" id="text" name="search">
<table id="table_data">
<tr class="listR"><td>PHP</td></tr>
<tr class="listR"><td>MySql</td></tr>
<tr class="listR"><td>AJAX</td></tr>
<tr class="listR"><td>jQuery</td></tr>
<tr class="listR"><td>JavaScript</td></tr>
<tr class="listR"><td>HTML</td></tr>
<tr class="listR"><td>CSS</td></tr>
<tr class="listR"><td>CSS3</td></tr>
</table>
$("#textbox").on('keyup',function(){
var f = $(this).val();
$("#table_data tr.listR").each(function(){
if ($(this).text().search(new RegExp(f, "i")) < 0) {
$(this).fadeOut();
} else {
$(this).show();
}
});
});
演示 您可以使用search()方法和正则表达式匹配文本
contains()
可以匹配子字符串 —— 比如说它会匹配文本是foobar
的元素,而不仅仅是foo
。 - Frédéric Hamidi