Chr*_*ger 27 javascript jquery
我想循环遍历HTML表单的元素,并将<input>字段的值存储在对象中.但是,以下代码不起作用:
function config() {
$("#frmMain").children().map(function() {
var child = $("this");
if (child.is(":checkbox"))
this[child.attr("name")] = child.attr("checked");
if (child.is(":radio, checked"))
this[child.attr("name")] = child.val();
if (child.is(":text"))
this[child.attr("name")] = child.val();
return null;
});
Run Code Online (Sandbox Code Playgroud)
以下都没有(受jobscry答案的启发):
function config() {
$("#frmMain").children().each(function() {
var child = $("this");
alert(child.length);
if (child.is(":checkbox")) {
this[child.attr("name")] = child.attr("checked");
}
if (child.is(":radio, checked"))
this[child.attr("name")] = child.val();
if (child.is(":text"))
this[child.attr("name")] = child.val();
});
}
Run Code Online (Sandbox Code Playgroud)
警报始终显示child.length == 0
.手动选择元素有效:
>>> $("#frmMain").children() Object length=42 >>> $("#frmMain").children().filter(":checkbox") Object length=3
有关如何正确执行循环的任何提示?
imj*_*uez 40
不认为你需要引用这个:
var child = $("this");
Run Code Online (Sandbox Code Playgroud)
尝试:
var child = $(this);
Run Code Online (Sandbox Code Playgroud)
imj*_*uez 28
jQuery具有很好的循环一组元素的功能: .each()
$('#formId').children().each(
function(){
//access to form element via $(this)
}
);
Run Code Online (Sandbox Code Playgroud)
Hug*_*are 13
根据您对每个孩子的需求(如果您希望通过AJAX将其发布到某个地方),您可以...
$("#formID").serialize()
Run Code Online (Sandbox Code Playgroud)
它会自动为您创建一个包含所有值的字符串.
至于循环对象,你也可以这样做.
$.each($("input, select, textarea"), function(i,v) {
var theTag = v.tagName;
var theElement = $(v);
var theValue = theElement.val();
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
107261 次 |
最近记录: |