2016-10-01 18 views
0

对不起。用javascript包装的文字

我不知道它为什么不起作用。

如果我写

<button type="button" onclick="document.getElementById("demo").innerHTML = Date()">click</button> 

上面一个是行不通的。

如果我写

<button type="button" onclick="document.getElementById('demo').innerHTML = Date()">click</button> 

这一项工作。

唯一的区别我得到了文字只有“”,“”

但是这是为什么发生?

为什么我只能选择替代文字,不一样?

谢谢

+1

试想一下,在HTML是如何着色,它应该是明显要设置'onclick'到'的document.getElementById(',因为那是文字字面结束。如果。你想避免这种情况,不要使用内联代码 –

+1

''''是onClick()方法的一部分,所以如果你的浏览器会遇到中间的''',那么你的浏览器会破坏你的代码,所以它不可用,这就是为什么你需要使用''' – Franco

+2

这是内联JS不是一个好主意的众多原因之一...... – JJJ

回答

2

因为你需要完整的表达

document.getElementById("demo").innerHTML = Date() 

您的onclick里面。如果你用双引号开启onclick表达式,解析器只知道另一个“会关闭表达式”,这就是为什么你必须使用不同的(在这种情况下是单个)引用的原因:

同样的事情,当你开始用单引号:

onclick='document.getElementById('demo').innerHTML = Date()' // wouldn't work 
onclick='document.getElementById("demo").innerHTML = Date()' // would work 
+0

是的谢谢你:) :) – sradha