我需要获取一个tr
元素,其中包含一个包含特定文本的td
元素。 td
将包含该文字,但仅包含该文字(因此我需要text = 'foo'
而不是text contains 'foo'
逻辑)。
所以我需要等效的以下'伪jQuery':
var tableRow = $(table td[text = 'foo']).parent('tr');
任何人都可以提供正确的语法吗?
答案 0 :(得分:88)
您可以使用filter()执行此操作:
var tableRow = $("td").filter(function() {
return $(this).text() == "foo";
}).closest("tr");
答案 1 :(得分:38)
我知道这是一篇旧帖子,但我想我可以分享另一种[不那么强大但更简单]的方法来搜索表格中的字符串。
$("tr:contains(needle)");
//其中needle是您要搜索的文本。
例如,如果您要搜索文本'框,那就是:
$("tr:contains('box')");
这将返回包含此文本的所有元素。如果它返回多个元素,可以使用其他标准来缩小范围
答案 2 :(得分:14)
$(function(){
var search = 'foo';
$("table tr td").filter(function() {
return $(this).text() == search;
}).parent('tr').css('color','red');
});
对于具有文本为'foo'的单元格的行,将文本变为红色。
答案 3 :(得分:2)
这将搜索每个tr内所有td中的文本,并根据搜索文本显示/隐藏tr
$.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();
});
答案 4 :(得分:0)
getImageData()
Demo 您可以使用RegExp匹配文本
通过search()方法执行