我有一个$,很好地收集jQuery包装的输入集。我想迭代它们并获得它们的价值。当我控制日志$(this)时,它会正确显示所选输入,但是在显示未定义之后放置.val()。帮助
var currentMACBindings = $("div[class*='mac-row-']");
$.each( currentMACBindings, function( key, value ) {
console.log("key is ", key);
console.log("value is ", $(this)); // this works
console.log("value is ", $(this).val()); // this no workie
});
答案 0 :(得分:3)
假设您的div具有值属性:
$("div[class*='mac-row-']").each(function( idx, element ) {
console.log("key is ", idx);
console.log("value is ", $(element).attr('value') );
});
否则,如果是输入:
var currentMACBindings = $("input").each(function( idx, element ) {
console.log("index is ", idx);
console.log("value is ", $(element).val() );
});
答案 1 :(得分:1)
因为你选择的是Div。 Div没有val()
方法。 val()
方法用于获取输入字段的值,如文本框,复选框等。
您应该在所选div中找到输入,然后调用val()
这应该有用。
var currentMACBindings = $("div[class*='mac-row-']").find("input");
$.each( currentMACBindings, function( key, value ) {
console.log("value is ", $(this).val());
});
Here是一个工作样本。
如果您尝试获取非输入字段(如div&s; / span)的内容,则应考虑使用text()
或html()
方法。小心。这些方法也给出了嵌套子节点的内容。所以要小心使用。
或者,如果您尝试获取div的其他属性,可以考虑使用attr()
方法。
var currentMACBindings = $("div[class*='mac-row-']");
$.each( currentMACBindings, function( key, value ) {
console.log("id of div is ", $(this).attr("id"));
});