2017-06-12 52 views
0

这是我的HTML代码:JavaScript getElementById短语法正在工作。可以使用它吗?

<div id=demo1></div> 
    <button onclick=demo()>this is button</button> 
} 

,这是我的JavaScript代码:

function demo(){ 
    demo1.innerHTML="this is good syntax"; 
} 

,这是显示一个链接是如何工作完美...请检查链接你说之前该语法不起作用。

https://codepen.io/navehazan/pen/QgEeOr

我的问题是,为什么用不完document.getElementById("demo1").innerHTML时,我可以只使用demo1.innerHTML

+4

灿你向我展示了一个工作示例,其中'demo.innerHTML =“一些文本”'工作? – j08691

+0

我的第二个版本包括:'var demo = document.getElementById(“demo”)' –

+0

之前@YuvalPruss然后他们是一样的,不是吗? – j08691

回答

0
demo.innerHTML="some text" 

不会工作,你需要定义“演示”作为DOM第一,检查以下

var demo = document.getElementById("demo") 
+0

https://codepen.io/navehazan/pen/QgEeOr 我很欢迎你看到这个语法正在工作...我真的很感激,如果你可以改变否定点 –

+0

语法工作,因为(演示)已经定义作为HTML中的DOM元素 – 2017-06-13 22:27:45

1

行了什么,你正在寻找被称为“命名的访问”。具有'name'或'id'属性的元素直接作为属性附加到dom。您甚至可以通过使用窗口对象窗口['demo1']来访问该元素。所以如果一个元素的ID或名称在文档中是唯一的,就可以用这种方式选择元素。

警告:

如果您有这样的标记,该怎么办?

<div id=demo1></div> 
<input name="demo1"/> 
<button onclick=demo()>this is button</button> 

https://codepen.io/pen/VWKqdv

标记是有效的,因为你没有重复的ID。但是,命名访问的工作方式是将'id'和'name'关联在一起。因此,在这种情况下,您将无法通过命名访问来选择元素,因为'demo1'将与'div'和'img'相关联,并且它将返回一个数组。为了避免这个问题,我们使用的document.getElementById()

命名访问: https://www.w3.org/TR/html5/browsers.html#named-access-on-the-window-object

0

这是一种新的语法,虽然它的工作,这是更好,更安全的使用

document.getElementById("demo1").innerHTML= 
相关问题