我有一张桌子,我正在搜索其中的数据。我可以找到数据正常,但我使用.each
迭代每一行。目前我正在使用text()
,它返回行的每一列中的所有文本。我正在检查这个文本。
但是,我想忽略一行中的某些列。在这种情况下,如果列包含链接而不仅仅是文本。
如何更改我的代码以解决此问题?
<table class=table-name>
...
<tbody>
<tr>
<td>Stuff I want to search</td>
<td>Stuff I want to search</td>
<td><a href="somelink.com" class="some-class">Link text I don't want to search</a></td>
</tr>
...
</tbody>
</table>
码
var row = $(".table-name").find("tbody").find("tr");
var input = 'Link text';
row.each(function() {
if ( $(this).text().toLowerCase().indexOf(input) >= 0) {
$(this).toggleClass("hide", false);
} else {
$(this).toggleClass("hide", true);
}
});
答案 0 :(得分:3)
您可以使用以下方法过滤掉文字:
$(this).children('td:not(:has(a))').text().toLowerCase().indexOf(input) >= 0
答案 1 :(得分:0)
您的var row = $(".table-name").find("tbody").find("tr");
var input = 'Link text';
row.children().each(function() {
if ( $(this).text().toLowerCase().indexOf(input.toLowerCase()) >= 0) {
$(this).toggleClass("hide", false);
} else {
$(this).toggleClass("hide", true);
}
});
在行上,而不在列上。
此外,您还要小写文本,但使用混合大小写输入搜索...所以这样的东西可以改为......
// remote method, defined below
Post.SaveFull = function(title,
description,
tags,
imageUrl,
cb) {
var models = Post.app.Models; // provides access to your other models, like 'Tags'
Post.create({"title": title, "description": description}, function(createdPost) {
foreach(tag in tags) {
// do something with models.Tags
}
// do something with the image
// callback at the end
cb(null, {}); // whatever you want to return
})
}
Post.remoteMethod(
'SaveFull',
{
accepts: [
{arg: 'title', type: 'string'},
{arg: 'description', type: 'string'},
{arg: 'tags', type: 'object'},
{arg: 'imageUrl', type: 'string'}
],
returns: {arg: 'Post', type: 'object'}
}
);