如何遍历Div并提取单个复选框值
How to iterate over Div and extract individual check box values?
我是JavaScript/JQuery新手…
需要遍历以下代码段,并返回分配给这些标签的电子邮件地址的数组或单个值(这些值硬编码为复选框值):
<div id="emailCheckListId" class="checkList">
<ul id="emailCheckListId_ul">
<li>
<label for="root.module.emailCheckList_0" class="checkListLabel">
<input type="checkbox"
value="johndoe@aol.com"
id="root.module.emailCheckList_0"
name="root.module.emailCheckList"/>
John Doe
</label>
</li>
<li>
<label for="root.module.emailCheckList_1" class="checkListLabel">
<input type="checkbox"
value="janedoe@aol.com"
id="root.module.emailCheckList_1"
name="root.module.emailCheckList"/>
Jane Doe
</label>
</li>
</ul>
</div>
已经写了一个JQuery事件监听器,它的作用是:
$('#emailCheckListId_ul').click(function() {
var divElement = document.getElementById(emailCheckListId);
// How to iterate over each element and obtain something like this:
//
// [johndoe@aol.com,janedoe@aol.com]
});
任何帮助都将是非常感激的…
感谢您花时间阅读这篇文章!
.map()
是完美的。您可以映射li
元素集并检索包含的数据,如下所示:
$('#emailCheckListId_ul').click(function() {
var divElement = $('#' + emailCheckListId);
var emails = $(this).find('li input').map(function() {
return $(this).val();
}); // => ['johndoe@aol.com', 'janedoe@aol.com']
});
看到jsFiddle。
如果你只选择复选框,你会想要使用这个选择器:"input[type=checkbox]"
.val()
对.attr('value')
有利
$(function(){
var x = $("#emailCheckListId").find("input[type=checkbox]").map(function(){
return $(this).val();
}).get();
console.log(x); //=> ['johndoe@aol.com', 'janedoe@aol.com']
});
Plain js:
function getValues(el) {
var result = [];
var inputs = el.getElementsByTagName('input');
for (var i=0, iLen=inputs.length; i<iLen; i++) {
// Maybe test the value here and only add the ones that
// meet some validation criteriion (e.g. not empty)
result[i] = inputs[i].value;
}
return result; // returns an array
}
我要把监听器放在div上(这里是内联的,但你也可以用onload或DOM ready或其他方式):
<div id="emailCheckListId" onclick="getValues(this);" ... >
让它工作,它还填充/取消填充电子邮件输入文本字段。诀窍是使用过滤器:input:checkbox:checked
// Event listener which picks individual contacts
// and populates input field.
$('#emailCheckListId_ul input:checkbox').change(function() {
// Declare array
var emails = [];
// Iterate through each array and put email addresses into array
$('#emailCheckListId_ul input:checkbox:checked').each(function() {
emails.push($(this).val());
});
// Assign variable as To: text field by obtaining element's id.
var textField = document.getElementById("root.form.email");
// Add / Remove array from text field
textField.value = emails;
});
如果没有你们这些了不起的人的帮助,我是不可能做到的!谢谢你的帮助! 相关文章:
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- 是否可以禁用jquery中的单个单选按钮
- 在数据提取完成之前进行页面渲染
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- 使用jquery选中/取消选中单个复选框
- 单个页面上有多个标记表单
- 在不破坏未定义函数的情况下,对多个视图使用单个js文件
- 如何从$_COOKIE中提取单个值[“elementValues”]
- 从缩小的文件中提取单个 javascript 文件代码
- 从字符串和计数中提取单个值
- 将单个键从对象提取到数组
- 如何从数组中提取单个值
- 将单个对象提取为对象,而不是具有一个对象的数组,Javascript
- 如何在 sqlite 中从记录中提取单个数据列
- 使用PDFJS从单个PDF页面提取图像
- 从JSON数组中提取单个变量
- 如何遍历Div并提取单个复选框值
- Javascript RegEx从字符串中提取所有单词作为单个匹配项,但不提取数字
- 从数组中提取单个值以存储在变量 javascript 中