使用jQuery在$ each中获取输入的值

时间:2015-12-23 19:05:39

标签: javascript jquery

我有一个$,很好地收集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
        });

2 个答案:

答案 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"));  
 });