document.formname.checkbox [0] .checked与document.getElementById('checkbox')。勾选

时间:2015-11-16 00:51:02

标签: javascript checkbox

在Javascript中,我通常使用语法document.formname.checkbox[0].checked,但我注意到几乎所有人都使用document.getElementById('checkboxid').checked。如果这似乎是一个愚蠢的问题我很抱歉,但我想知道我的首选语法是否已被弃用,还是其他人只是使用更方便的语法?

3 个答案:

答案 0 :(得分:0)

每个意味着什么:

document.formname.checkbox[0].checked

这使用表单和元素的name=属性来选择所需的元素。这很好,因为有时你不想在任何地方使用ID来标记你的标记,而你更喜欢使用大多数表单所具有的名称(因为默认提交使用名称作为键)。

潜在的问题是它有点冗长,可能不太可读。

document.getElementById('checkboxId').checked

这只是简单地插入ID并获取正确的元素,但是为了获取表单中的任何元素,它还必须具有ID,这可能非常烦人。

document.querySelectorAll('#myForm input[type=checkbox]')[0].checked

这是一个替代解决方案,它使用CSS选择器和document.querySelectorAll(),我觉得它更具可读性,特别是对于那些比CSS更精通CSS的人。

哪个更好?取决于您的特定用例和偏好。我喜欢使用querySelector和querySelectorAll,特别是如果我已经在变量中有表单DOM对象:

myForm.querySelector('input[type=checkbox]').checked;

取决于你。

答案 1 :(得分:-1)

getElementById是首选。考虑一个包含以下内容的网页:

<div id="x"></div>

您只需x即可在javascript中访问div [{1}}。

现在考虑是否在全局上下文中定义了console.log(x)。好了,现在您无法使用var x = 5来访问您的div,现在它的值只有x

5是首选,因为您无法用其他内容的变量覆盖您的选择器。

答案 2 :(得分:-1)

document.formname.checkbox[0].checked可能实际上并不适用于所有浏览器。 document.forms[0].elementsdocument.formName标准化,document.getElementById()