循环显示未隐藏的复选框

时间:2014-08-06 15:07:53

标签: javascript jquery html

在网页上,我向用户提供隐藏表格元素(包含复选框)的选项,如下所示:

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语句不起作用,即所有元素都添加到数组中。我如何只添加未隐藏的复选框?

1 个答案:

答案 0 :(得分:2)

如果您正在寻找一个jQuery解决方案,这应该足够了。使用.map()

var arrayDisposals = $('input[type="checkbox"][name*="Del"]:visible').map(function(){
    return this.id+ "|" + this.checked
}).get();

使用属性选择器查找复选框以及名称中包含“Del”和:visible的位置,以检查其是否未隐藏。

DEMO