我有一个变量,它存储包含一些内容的表行。我想使用%% LIKE %%方法搜索该字符串以查找特定术语,如果找到,则将此html行添加到仅包含已过滤行的新变量中。 如果可能的话,我希望搜索不区分大小写。
到目前为止,我有以下内容,似乎不起作用:
// current list
var thisBlock = '<tr><td>Some content</td></tr><tr><td>Some other content</td></tr><tr><td>Even more content</td></tr>';
// new list
var thisList;
// phrase to be found
var thisValue = 'Some';
// filter
var thisItems = $(thisBlock).find("tr:contains('" + thisValue + "')");
// loop to append the found rows
if (thisItems !== '' && typeof thisItems !== 'undefined') {
$.each(thisItems, function() {
thisList += $(this).clone().wrap('<div>').parent().html();
});
}
问题似乎与过滤器部分有关,我无法弄清楚如何以其他方式进行。
答案 0 :(得分:1)
试试这个:
var thisItems = $('<table>'+thisBlock+'</table>').find("tr:contains('" + thisValue + "')");
如果没有包装表标签,我认为jQuery不会将其视为有效标签,因为它没有根节点。
更新:以下代码正在努力将每个匹配的行添加到表#outTab中,您可以使用它来到达您想要的位置吗?
<table id="outTab"/>
<script type="text/javascript">
// current list
var thisBlock = '<table><tr><td>Some content</td></tr><tr><td>Some other content</td></tr><tr><td>Even more content</td></tr></table>';
// new list
var thisList;
// phrase to be found
var thisValue = 'Some';
// filter
var thisItems = $(thisBlock).find("tr:contains('" + thisValue + "')");
// loop to append the found rows
if (thisItems !== '' && typeof thisItems !== 'undefined') {
$.each(thisItems, function(){
console.log( this );
$('#outTab').append(this);
});
console.log(thisItems);
}
</script>