在网页上,我向用户提供隐藏表格元素(包含复选框)的选项,如下所示:
mytable.style.display = 'none'; //the table and the enclosed textbox is hidden
我现在正试图找到所有未隐藏的表格:
var frm = document.forms[0];
var arrayDisposals;
var intCount;
var arrayDisposals = new Array();
for (i = 0; i < frm.elements.length; i++) {
if (frm.elements[i].type == "checkbox" && frm.elements[i].name.substr(0, 3) == "Del") {
if ('none' != frm.elements[i].style.display) {
{
arrayDisposals.push(frm.elements[i].id + '|' + frm.elements[i].checked)
}
}
}
问题是第二个IF语句不起作用,即所有元素都添加到数组中。我如何只添加未隐藏的复选框?
答案 0 :(得分:2)
如果您正在寻找一个jQuery解决方案,这应该足够了。使用.map()
var arrayDisposals = $('input[type="checkbox"][name*="Del"]:visible').map(function(){
return this.id+ "|" + this.checked
}).get();
使用属性选择器查找复选框以及名称中包含“Del”和:visible
的位置,以检查其是否未隐藏。