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