使用jQuery filter()获取所有匹配的.val()

时间:2012-01-31 05:52:45

标签: javascript jquery

我有很多文本字段,我需要选择那些值不等于title属性的文本字段的值。

问题:通过我的尝试,下面的jQuery代码只选择第一个匹配的文本字段的值。如何获得所有匹配的文本字段值?

jQuery代码

var inputs = $(".input").filter(function() {
                return $(this).val() != $(this).attr('title');
            }).val();
console.log(inputs);

3 个答案:

答案 0 :(得分:5)

这是更简单的解决方案:

var input = [];
jQuery('input[type=text]').each(function(){
   if(jQuery(this).val() != jQuery(this).attr('title') ) {
   input.push(jQuery(this).val());
   }
});

答案 1 :(得分:3)

.val()方法仅返回所选元素列表中第一个元素的值。尝试将其转换为数组:

var inputs = $(".input").filter(function() {
    return $(this).val() != $(this).attr('title');
}).map(function(){
    return $(this).val();
}).get();
console.log(inputs);

答案 2 :(得分:3)

这是一种方法:

var inputs = [];
$(".input").filter(function() {
    return $(this).val() != $(this).attr('title');
}).each(function() {
    inputs.push($(this).val());
});
console.log(inputs);

示例:http://jsfiddle.net/grc4/cCRfE/