我需要獲取包含具有特定文本的td
元素的tr
元素。 td
將包含該文本和只有該文本(所以我需要text = 'foo'
而不是text contains 'foo'
邏輯)。jQuery - 查找包含特定文本的表格單元格的表格行
所以我需要下面的「僞jQuery的」等價的:
var tableRow = $(table td[text = 'foo']).parent('tr');
誰能提供正確的語法?
我需要獲取包含具有特定文本的td
元素的tr
元素。 td
將包含該文本和只有該文本(所以我需要text = 'foo'
而不是text contains 'foo'
邏輯)。jQuery - 查找包含特定文本的表格單元格的表格行
所以我需要下面的「僞jQuery的」等價的:
var tableRow = $(table td[text = 'foo']).parent('tr');
誰能提供正確的語法?
您可以使用filter()做到這一點:
var tableRow = $("td").filter(function() {
return $(this).text() == "foo";
}).closest("tr");
$(function(){
var search = 'foo';
$("table tr td").filter(function() {
return $(this).text() == search;
}).parent('tr').css('color','red');
});
會變成文本紅色其中有一個細胞,其文字是「富」的行。
我知道這是一箇舊的帖子,但我想我可以分享一個替代[不像健壯,但更簡單]的方法來搜索表中的字符串。
$("tr:contains(needle)");
//其中needle是您要搜索的文本。
例如,如果您正在搜索的文本「盒子」,這將是:
$("tr:contains('box')");
這將返回所有與這段文字的元素。附加標準可以用來縮小它,如果它返回多個元素
此解決方案將包含任何包含該tr的tr。所以如果你在一個表格內有一個表格(等等),那麼它會選擇最上面的tr並隱藏它下面的所有內容,但是OP想要最接近的tr。 – Malachi 2016-02-22 17:16:42
在所有TD的每個TR和顯示/隱藏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();
});
<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();
}
});
});
Demo 您可以使用搜索()方法使用RegExp匹配文本來執行
不可思議。謝謝。 – David 2011-05-26 10:06:48
同時結帳@pi回答下面的更近的方法 – TFD 2015-07-07 16:12:57
@ TFD,這種方法有點不同,因爲'contains()'匹配子字符串 - 它將匹配其文本是'foobar'的元素,例如,不僅是' foo'。 – 2015-07-07 16:16:35