我正在迭代一些元素,我发现它document.getElementById("id")
有效,但$("#id")
没有.为什么?
编辑:我想发布代码不会有什么坏处?
function myFunction() {
var token, tokens, id, input;
$("[id^=\"some_id_\"]").each(function() {
tokens = this.id.split("_");
id = tokens[tokens.length - 1];
input = document.getElementById("some_form_element_" + id); //WORKS
//input = $("#some_form_element_" + id); //DOESNT, alerts undefined
alert(input.value);
});
}
Run Code Online (Sandbox Code Playgroud)
你是警告input.value
,value
没有在jQuery包装器对象上定义.
document.getElementById
将直接返回DOM元素.但是$()
返回一个包装DOM元素的jQuery对象.您可以使用$('#someId').attr('value');
或获取jQuery案例中的输入值$('#someId').val()
这是一个小提琴演示:http://jsfiddle.net/CK2xr/