在jQuery中的foreach对象/数组

时间:2009-09-02 09:14:35

标签: javascript jquery arrays object

我有一个问题,我的代码中有X <input type="checkbox" />,现在我想将这个对象/数组预先输出。 - 查看我的代码。

$("#denied_seekrs").click(function()
{ 
    if (!isCheckedById("selectname")) 
    { 
        alert ("Please select at least one event"); 
        return false; 
    } 
    else 
    { 
        alert( $("input[@id=selectname]:checked").val() ); //submit the form 
    } 
}); 

function isCheckedById(id) 
{ 
    var checked = $("input[@id="+id+"]:checked").length; 
    if (checked == 0) 
    { 
        return false; 
    } 
    else 
    { 
        return true; 
    } 
}

当我在警报中输出它时,我会得到一个对象,但是如果我选择了2复选框,那么这2个复选框中的值是什么。

我希望我能提供帮助,所有人都理解我:)

5 个答案:

答案 0 :(得分:26)

怎么样

$("#denied_seekrs").click(function() {
    var checkedInputs = $("input:checked");
    var test = "";
    $.each(checkedInputs, function(i, val) {
        test += val.value+",";
    });
    test = test.substring(0,(test.length-1));
    alert(test);
});

答案 1 :(得分:3)

我不确定你在寻找什么,但我猜测jQuery.each() method会有所帮助。您可以使用它来迭代数组,对象等。

var arr = [ "one", "two", "three", "four", "five" ];

jQuery.each(arr, function() {
     $("#" + this).text("My id is " + this + ".");
     return (this != "four"); // will stop running to skip "five"
});

答案 2 :(得分:2)

这样的事情怎么样:

 jQuery.each(checked, function() {
      $(checked + this).text("My id is " + this + ".");

    });

答案 3 :(得分:2)

可能是 - 最终 - 您正在寻找$.serializeArray()$.serialize()

如果没有,那么这可能对你有帮助:

$("#denied_seekrs").click(function()
{ 
    if (!isCheckedById("selectname")) 
    { 
        alert ("Please select at least one event"); 
        return false; 
    } 
    else 
    { 
        // prepare array of values
        var values = [];

        // prepare list of checked checkboxes
        var $checkboxes = $("input[@id=selectname]:checked");

        // push each individual value into the array
        $checkboxes.each(function() { values.push( $(this).val() ); });

        // debug output
        alert( values.join("\n") ); 
        //submit the form 
    } 
});

答案 4 :(得分:0)

当我找到你的时候,你希望用户选择一个复选框(或者是一个或多个?)。这应该这样做:

$("#denied_seekrs").click(function()
{ 

    var $checkedInputs = $("input:checked"); 

    if ($checkedInputs.length != 1) 
    { 
        alert ("Please select one event"); 
        return false; 
    } 

    alert( $checkedInputs.val() ); //submit the form 
}); 

修改 在再次阅读您的问题后,我意识到上述代码没有回答您的问题。但是,上述方法确实有效,并且是您解决方案的更短版本。也许你想用它代替。要回答您的问题,您可以提醒所有复选框的值,如下所示:

改变这个:

    alert( $checkedInputs.val() ); //submit the form 

到此:

    var values = "";
    $checkedInputs.each(function(){
      values += $(this).val() + " ";
    });

    alert( values );