在jQuery中的foreach对象/数组
我有一个问题,我的代码中有X ,现在我想将这个对象/数组预先输出。 – 看我的代码。
$("#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复选框中的值是什么。
我希望我能提供帮助,所有人都理解我:)
怎么样
$("#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); });
我不确定你在寻找什么,但我猜测jQuery.each()方法会有所帮助。 您可以使用它来迭代数组,对象等。
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" });
这样的事情怎么样:
jQuery.each(checked, function() { $(checked + this).text("My id is " + this + "."); });
可能是 – 最终 – 你正在寻找$.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 } });
当我找到你的时候,你希望用户选择一个复选框(或者是一个或多个?)。 这应该这样做:
$("#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 );