我有一個HTML表格看起來返回另一列如下圖所示:如何搭配jQuery中一列文本匹配和匹配的行
是有辦法找出根據菜品名稱到其類別。 僅基於<td>
文字? 例如:輸出將是 海鮮:扇貝在黃油和醬油,蝦大蒜黃油等。 飲料:旭硝子,可樂等.... 謝謝...
我有一個HTML表格看起來返回另一列如下圖所示:如何搭配jQuery中一列文本匹配和匹配的行
是有辦法找出根據菜品名稱到其類別。 僅基於<td>
文字? 例如:輸出將是 海鮮:扇貝在黃油和醬油,蝦大蒜黃油等。 飲料:旭硝子,可樂等.... 謝謝...
以下功能需要你列數想要匹配,應該匹配的文本以及匹配返回值必須返回的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);
這將返回類別爲海鮮的所有元素的數組
我試圖編寫一個通用函數來匹配所有用例。仍然可以根據您的要求進行更多擴展,例如在匹配行中返回多個列,匹配大小寫不敏感等。您可以修改此基本函數以向其添加更多功能。
試試這個
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");
});
是的,我相信這是可能的,但沒有向我們展示你所努力的嘗試也讓我們來幫助你任何進一步的 –
我認爲filter()方法會幫助我,但無法正確使用它。它看起來像「jQuery數據表」搜索.. –