解析页面通过JavaScript复选框(Parse page for checkboxes via

2019-10-17 02:31发布

我有一堆的动态创建的页面加载和书面像这样的复选框:

<input type='checkbox' name='quicklinkscb' id='quicklinkscb_XX'/>

其中,XX表示从数据库项目的ID。

我希望能够通过JavaScript所有复选框和解析页面:

发现自己的身份证,并从它和剥离“quicklinksscb_”:

if(checkbox is checked)
{
  add to add list
}
else
{
 add to remove list
}

我无法通过复选框列表做到这一点,我想这样做的所有客户端

有人可以提供一些线索

Answer 1:

for(var i = 0; i < document.forms.length; i++) {
    for(var j = 0; j < document.forms[i].elements.length; j++) {
        var elem = document.forms[i].elements[j];
        if(elem.type == 'checkbox')
            var tag = elem.getAttribute('id');
            tag.replace(/^quicklinkscb_/, '');
            if(elem.checked)
                add_to_add_list(tag);
            else
                add_to_remove_list(tag);
    }
}

jQuery中容易很多:

$(':checkbox').each(function() {
    var tag = $(this).attr('id');
    tag.replace(/^quicklinkscb_/, '');
    if($(this).attr('checked'))
        add_to_add_list(tag);
    else
        add_to_remove_list(tag);
});


Answer 2:

虽然没有争议,通过所示的jQuery的代码示例是更短,更容易比POJ样品读,我会质疑使用多KB jQuery库只是这个应用程序的理由。

我POJ版本将遵循阿迪亚的建议如下:

var 
  add_list = [],
  del_list = [];

for (var inputs = document.getElementsByTagName ('input'), cb, i = inputs.length;
     i--;)
  if ((cb = inputs[i]).type === 'checkbox') {
    cb.id = cb.id.replace (/^quicklinkscb_/, '');
    (cb.checked ? add_list : del_list).push (cb);
  }

我读了原来的问题是问这个复选框ID的改变,然后元素被添加到添加/删除列表。 混乱的实现相当于是这样的:

for (var inputs = document.getElementsByTagName ('input'), cb, i = inputs.length;
         i--;)
  if ((cb = inputs[i]).type === 'checkbox')
    (cb.checked ? add_list : del_list).push (cb.id.replace ((/^quicklinkscb_/, '')));


文章来源: Parse page for checkboxes via javascript