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

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();
}

这给我在Firefox中的以下错误



为什么在val函数上失败?

最佳答案

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

var Subject = myInputBoxes.eq(i).val();

另外,您可以保留DOMElement并使用value属性:
var Subject = myInputBoxes[i].value;

07-24 16:46