javascript通过逻辑连接的元素对进行迭代
javascript iterating through pairs of logically connected elements
我有一个网站,里面有一系列用户可以编辑的空文本字段。每个文本字段旁边都有一个复选框,如下所示:
<input type="text" id="textfield1" size="60" /><input type="checkbox"> <br />
<input type="text" id="textfield2" size="60" /><input type="checkbox"> <br />
<input type="text" id="textfield3" size="60" /><input type="checkbox"> <br />
一旦用户单击提交,是否有一种方法可以逐行迭代文本输入和复选框对?
例如,是否可以以某种方式将文本字段和复选框组合在一起,并通过group.textfield.value=遍历这些组?和group.checkbox.value=?
我需要一种简单的方法来确定字段的文本,以及该特定字段的复选框是否选中了
只需迭代text
输入,并使用.nextSibling
获取每个相邻的checkbox
。
确保它们之间没有任何空格。
另一种选择是将它们分组为fieldset
元素。。。
<fieldset>
<input type="text" id="textfield1" size="60" /><input type="checkbox">
</fieldset>
<fieldset>
<input type="text" id="textfield2" size="60" /><input type="checkbox">
</fieldset>
<fieldset>
<input type="text" id="textfield3" size="60" /><input type="checkbox">
</fieldset>
然后迭代fieldset
元素,并使用.children[0]
和.children[1]
给每个输入一个可以用来关联对的名称(它们无论如何都需要):
<form onsubmit="doStuff(this);">
<input type="text" id="textfield1" name="textfield1" size="60">
<input type="checkbox" name="textfield1-cb"> <br>
<input type="text" id="textfield2" name="textfield2" size="60">
<input type="checkbox" name="textfield2-cb"> <br>
<input type="text" id="textfield3" name="textfield3" size="60">
<input type="checkbox" name="textfield3-cb"> <br>
<input type="submit">
</form>
<script type="text/javascript">
function doStuff(form) {
var control, controls = form.elements;
var pair;
for (var i=0, iLen=controls.length; i<iLen; i++) {
control = controls[i];
pair = form[control.name + '-cb'];
if (control.type == 'text' && pair) {
// control is the input and pair is the checkbox
}
}
}
</script>
上面只要求控件按名称关联,而不是按结构关联,这将使其更加健壮。
相关文章:
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 为什么这只是迭代 HTMLCollection 的奇怪元素
- 每个$.,循环获胜't逐个迭代HTML元素
- 在JSON数组中进行迭代,并为其元素设置样式
- 使用.ech()迭代具有类似类名的元素
- 自动完成搜索无法正常工作,请不要迭代$中的所有元素.每个ul-li都会及时显示响应
- 迭代 coffeescript 中的 jQuery DOM 元素: $(@).捷径
- 如何迭代具有相同ID的元素
- DOM:如何根据迭代器值设置元素宽度并在mouseover上调用函数
- 在JS对象元素上迭代并更改它们
- 迭代JSON对象并将元素打印到屏幕上的最佳方式是什么
- 如何访问迭代模板中的任何元素
- javascript通过逻辑连接的元素对进行迭代
- 使用for.of迭代时删除集合中的元素是否安全
- 如何在数据数组的每次迭代中创建一个内容为“i+1”的新 HTML 元素
- JQuery 添加表单元素迭代 ID
- 每个,从开始元素迭代
- 无法使用守夜人中的元素迭代元素
- Javascript中的表单元素迭代
- jQuery 从子元素迭代内部子元素