答案 0 :(得分:0)
下面的函数需要匹配的列号,应该匹配的文本以及匹配必须返回值的returnColumn。
columnMatch :要查看
文本的列号
matchText :您要匹配的文字
returnColumn :如果匹配,您希望从中返回文本的列号
function getMatchesFromTable(matchColumn,matchText,returnColumn)
{
var matchedValues = [];
$("table tr td:nth-child("+matchColumn+")").each(function () {
if($(this).text() == matchText){
matchedValues.push($(this).parent().find('td:nth-child('+returnColumn+')').text());
}
});
return matchedValues;
}
您可以致电的案例示例:
getMatchesFromTable(3,"Seafood",5);
这将返回类别为海鲜的所有元素的数组
我试图编写一个通用函数来匹配所有用例。仍然可以根据您的要求进行更多扩展,例如返回匹配行中的多个列,匹配不区分大小写等。您可以修改此基本功能以向其添加更多功能。
答案 1 :(得分:0)
试试这个
var array = [];
var headers = [];
$('table th').each(function(index, item) {
headers[index] = $(item).html();
});
$('table tr').has('td').each(function() {
var arrayItem = {};
$('td', $(this)).each(function(index, item) {
arrayItem[headers[index]] = $(item).html();
});
array.push(arrayItem);
});
alert(JSON.stringify(array));
$(array).each(function(index, item) {
if ($.inArray("find", item) > -1){
alert('found');
}
});
或者您可以使用
$('table tr').has('td').each(function(index, td) {
var tableRow = td.filter(function() {
return $(this).text() == "foo";
}).closest("tr");
});