javascript - li 输入复选框 : how to get checked state javascript

标签 javascript jquery

我可以访问每个 li[i] 返回您在图片中看到的内容。例如,li[i].innerText 返回 business。如何获取每个元素的 checked 状态?

element iteration

//loop through li elements in categories to add listeners
  for(var i = 0 ; i < li.length; i++){
    (function(i){
        li[i].addEventListener('click', function(event) {
          event.preventDefault();

          //disallow repeats
          if(checkedItems.indexOf(li[i].innerText) == -1){
            checkedItems[counter] = li[i].innerText;
            counter++;
            console.log("added");
          }

          console.log(li[i].checked); //undefined
          //remove element if unchecked from array
          if(li[i].checked){
            var index = checkedItems.indexOf(li[i].innerText);
            console.log(li[i].innerText +": " + index);
            checkedItems.splice(index, 1);
            console.log("disabled");
            counter--;
          }
    console.log(checkedItems);
        });
    }(i));

  }

最佳答案

您需要获取对 input 元素的引用,可以按如下方式执行:

var input = this.querySelector('input[type=checkbox]');

...然后您可以使用input.checked:

var li = document.querySelectorAll('li');

for(var i = 0 ; i < li.length; i++){
    li[i].addEventListener('click', function(event) {
      //event.preventDefault();
      var input = this.querySelector('input[type=checkbox]');
      console.log(this.textContent.trim(), input.checked);
    });
}
<ul>
<li>
    <span>test</span>
    <input type="checkbox">
</li>
</ul>

关于javascript - li 输入复选框 : how to get checked state javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40775387/

相关文章:

javascript - 在 Internet Explorer 中的打印页面模板中设置纸张大小

javascript验证码不验证

javascript - 如何在js中过滤点击元素?

javascript - Bootstrap 模式中的 MVC 动态验证不会阻止提交

jquery - 如何使用 jQuery 将选择元素转换为单选按钮?

javascript - 我怎样才能改变 IE 中选择标签的这种行为

javascript - 使用 JavaScript 的交互式 SVG |嵌入还是不嵌入 SVG?

javascript - JS HTML5 验证 "display:none"所需的输入元素

javascript - 错误: Cannot find module 'jose' in node js

javascript - HTML - 为什么我无法在此 HTML 文本区域中输入内容?