获取“对象HTMLInputElement”的值和函数错误

时间:2014-09-07 11:42:47

标签: javascript jquery dom

我在页面上有复选框,我得到了已检查的复选框,然后我循环浏览它们;

var checkeds = $('#accTypes input:checked');
    var values = "";

    for (var i = 0; i < checkeds.length; i++) {
        console.log(checkeds[i]);
        var cval = checkeds[i].val();
        values = values + "," + cval;
    }

我发现下面的行会导致错误。

checkeds[i].val()

当我在chrome控制台中打印checkeds [i]变量时,我看到了;

<input type=​"checkbox" name=​"accom-check" id=​"checkboxP12" value=​"12">​

我想获得checkeds [i]变量的值。我怎么能这样做?

1 个答案:

答案 0 :(得分:4)

jQuery集合是一个类似于数组的对象,包含本机DOM节点。

当您以checkeds[1]访问它时,您将获得本机DOM节点,而不是jQuery版本,因此它没有val()方法。

使用原生值

var cval = checkeds[i].value;

或使用eq()获取jQuery对象

var cval = checkeds.eq(i).val();

作为旁注,你可以用地图做同样的事情

var values = $('#accTypes input:checked').map(function() {
    return this.value;
}).get().join(',');