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

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

最佳答案

如果您正在寻找jQuery解决方案,那么就足够了。使用.map()

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


使用属性选择器查找复选框,并在其中包含“ Del”的名称和:visible来检查其是否隐藏。

DEMO

关于javascript - 循环浏览未隐藏的复选框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25163906/

10-12 00:14