我正在使用jQuery 1.7.2。
我有三个复选框,每个复选框都有一个唯一的公司ID。选中一个框后,我想列出从已检查的框中创建的公司ID列表。
<input type='checkbox' class='Company' data-companyid='1'> 1<br>
<input type='checkbox' class='Company' data-companyid='2'> 2<br>
<input type='checkbox' class='Company' data-companyid='3'> 3<br>
// SET BY CLASS
$Company = $("input.Company");
// GET COMPANY LIST
function getCompanyList() {
var len = $Company.length;
for (i = 0; i < len; i++) {
var CompanyID = $Company[i].data("companyid");
alert(CompanyID);
}
}
$Company.change(getCompanyList);
出于某种原因,我无法通过循环中的数据方法访问公司ID。我有很多我自己的代码示例,我做这种事情,但我不能让这个工作。
我错过了什么?
答案 0 :(得分:2)
您不会将各个公司ID累积到任何类型的数据结构中。
从(已检查)元素数组返回值数组的最简单方法是使用jQuery的.map
函数:
function getCompanyList() {
var companyList = $Company.filter(':checked').map(function() {
return $(this).data('companyid');
}).get();
alert(companyList);
}
.get()
调用是将.map()
的结果转换为普通数组所必需的。
答案 1 :(得分:2)
为什么不这样的东西,把它们放在一个数组中?
var checkedCompanys = new Array();
$('input.company:checked').each(function() {
checkedCompanys.push($(this).data("companyid"));
});
祝你好运