我有一个对象,
$target = $('#tableA tr[data-id="' + elm.id + '"]'); // Collection of tr
我也有一个数组,
var fids = $("#tableB tr .New.selected").parent().map(function () {
return $(this).data("fid"); // collection of Fids
}).get();
现在我想过滤对象$target
(它是tr的集合),只得到f,其中fid = fids
中的任何内容
我可以尝试一个数字,但不知道我怎么能为数组做这个,这就是我想要的,
$target.filter(function() {
return $(this).data("fid") == 4 // HERE i want it to filter based on fids array..
});
答案 0 :(得分:0)
您可以使用indexOf()
,如果在数组中找不到元素,则返回-1
,或者此元素在数组中的位置。
例如,如果数组是[1, 4, 7]
:
var fid = $(this).data("fid");
return [4, 7, 11].indexOf(fid) >= 0;
但是当使用indexOf()
时,如果参数是字符串而不是数字,而数组元素是数字,则它们不会被强制执行 - 所以你需要明确地这样做:
var fid = $(this).data("fid");
return [4, 7, 11].indexOf(parseInt(fid, 10)) >= 0;
这不是问题 - 无论如何,您几乎总是使用===
代替==
。