【问题标题】:Accessing check box via id通过 id 访问复选框
【发布时间】:2013-12-12 19:32:29
【问题描述】:
在项目中有这个外部 .js 文件,它链接到一个 .jsp 文件。我需要确认是否选中了 .jsp 文件中的某个复选框,并且我必须从 .js 文件中进行检查。假设复选框的 id 是:“fruit”。
我在 .js 文件中编写了以下代码:
if(fruit=="true"){console.log('checked');}
不知何故,控制台语句永远不会被打印出来,我不确定上述代码有什么问题。希望有人可以建议。谢谢你。
【问题讨论】:
标签:
javascript
html
jsp
dom
【解决方案1】:
这是因为fruit 指的是HTMLInputElement 对象,而不是字符串。
最小的改变是使用该元素的checked 属性:
if(fruit.checked){console.log('checked');}
但请注意,您所依赖的事实是,具有id 属性的元素会使用id 中的名称转储到全局命名空间中。我通常不依赖它,因为其他东西很容易覆盖自动全局(并且因为该行为没有在任何地方指定,在我看来这是一个非常糟糕的主意;遗憾的是,我认为它会成功不久之后进入规范)。
因此,与其依赖它,通常使用document.getElementById:
if(document.getElementById("fruit").checked){console.log('checked');}
(或者,当然,像 jQuery 这样的库可以让它更短一些,但如果这就是你所做的一切,那么就不需要库了。)
【解决方案2】:
使用 jquery 应该是:
if($('#fruit').prop('checked')){ console.log('checked');}