jQuery .filter()
文档说,使用它的第三种方法是来自elements
,它不是选择器而是DOM元素 - 我将其作为元素数组进行了测试。但以下方法不起作用。我可以从自定义元素数组中过滤吗?http://api.jquery.com/filter/
var subset = [];
$('input[type=text]').each(function(i, item) {
subset.push($(this));
});
// Filter by Elements array
$('input').filter(subset).each(function(i, item) {
console.log('Filtered from array: ' + $(this).attr('id'));
});
console.log('end');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="text1"/><br/>
<input type="textarea" id="textarea1"/><br/>
<input type="radio" id="radio1" name="radiogroup"/>Radio1<br/>
<input type="radio" id="radio2" name="radiogroup"/>Radio2<br/>
<input type="radio" id="radio3" name="radiogroup"/>Radio3<br/>
<input type="text" id="text2"/><br/>
这是解决方案
$('input[type=text]').each(function(i, item) {
subset.push(item);
});
您必须使用 subset.push(item);
更改subset.push($(this))
var subset = [];
$('input[type=text]').each(function(i, item) {
subset.push(item);
});
// Filter by Elements array
$('input').filter(subset).each(function(i, item) {
console.log('Filtered from array: ' + $(this).attr('id'));
});
console.log('end');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="text1"/><br/>
<input type="textarea" id="textarea1"/><br/>
<input type="radio" id="radio1" name="radiogroup"/>Radio1<br/>
<input type="radio" id="radio2" name="radiogroup"/>Radio2<br/>
<input type="radio" id="radio3" name="radiogroup"/>Radio3<br/>
<input type="text" id="text2"/><br/>