TypeError:.val不是函数

Nei*_*l P 17 javascript jquery

我有以下代码,我选择所有以相同名称开头的匹配元素,不包括我不想包含在组中的元素.

var myInputBoxes= $('input[id ^= "SubjectText"]').not('#SubjectTextNew');
for (i = 0 ; i < myInputBoxes.length; i++){
    var SubjectId = myInputBoxes[i].id.replace('SubjectText', '');
    var Subject = myInputBoxes[i].val();
}
Run Code Online (Sandbox Code Playgroud)

这给了我firefox中的以下错误

TypeError:myInputBoxes [i] .val不是函数

为什么它会在val函数上失败?

Ror*_*san 39

使用括号表示法访问jQuery对象会返回没有该val()函数的DOMElement .如果要在匹配的集合中通过索引检索元素,则需要使用eq():

var Subject = myInputBoxes.eq(i).val();
Run Code Online (Sandbox Code Playgroud)

或者,您可以保留DOMElement并使用该value属性:

var Subject = myInputBoxes[i].value;
Run Code Online (Sandbox Code Playgroud)