摘自Jon Duckett的《JavaScript和jQuery》一书中的"事件"一章。
这是代码:
var msg = '<div class="header"><a id="close" href="#">close X</a></div>';
msg += '<div><h2>System Maintenance</h2>';
msg += 'Our servers are being updated between 3 and 4 a.m. ';
msg += 'During this time, there may be minor disruptions to service.</div>';
var elNote = document.createElement('div');
elNote.setAttribute('id', 'note');
elNote.innerHTML = msg;
document.body.appendChild(elNote);
function dismissNote() {
document.body.removeChild(elNote);
}
var elClose = document.getElementById('close');
elClose.addEventListener('click', dismissNote, false);
我只是对开头感兴趣。为什么"header"
和"close"
被转义,而href="#"
没有?我在没有转义的情况下运行了代码,它仍然有效。
这个想法是教你使用转义引号,因为如果你写代码:
var msg = "<div class="header"><a id="close" href="#">close X</a></div>";
这应该有效,但如果引号没有转义,它就不起作用。单引号表示里面的所有内容都是一个精确的引号,即引号(")被解释为一个字符串,而不是一个新字符串的开始(或结束)
此代码不起作用:
var msg = "<div class="header"><a id="close" href="#">close X</a></div>";