【问题标题】:Iavascript \" \' I'm confusedIavascript \" \' 我很困惑
【发布时间】:2011-04-11 02:57:45
【问题描述】:
我正忙于一点 JavaScript 项目,但我被下一条规则弄糊涂了:
<a href="#" onclick="removeMap('+ \"test\" +')" style="float:right; margin-right: 30px;"><img src="images/icons/collapse.gif"></a><br/>'
它不需要onclick 删除地图操作。我不知道我必须在() 之间放什么才能让我可以在那里放文字。有人有解决办法吗?
【问题讨论】:
标签:
javascript
dom-events
escaping
quotes
【解决方案1】:
试试吧:
onclick="removeMap('test')"
如果测试是variable:
onclick="removeMap(test)"
\" 用于转义onclick 事件的结束双引号。在这种情况下,我认为您的呼叫没有任何用处。当在 html 标记中使用事件函数时,就像您的 onclick 事件一样,因为 html 使用 double quotes 作为属性,您需要在 inline javascript 函数中使用单引号。
顺便问一下,您检查过JQuery JavaScript Library。当您开始编码 javascript 时,很高兴知道您的选择。
【解决方案2】:
怎么样:
<a href="#" onclick="removeMap('test')" style="float:right; margin-right: 30px;"><img src="images/icons/collapse.gif"></a><br/>'
【解决方案3】:
您应该使用能够正确突出显示字符串的编辑器(发生的事情应该很明显)
【解决方案4】:
或者只是停止在 HTML 标记中编写 javascript,只需调用函数并将代码放入函数中...非常易读!
【解决方案5】:
转义引号在 HTML 中没有任何特殊含义。相反,浏览器会将您的行视为:
<a href="#"
onclick="removeMap('+ \"
test\
" +')"
style="float:right; margin-right: 30px;"
>
onclick 会损坏 Javascript,并且标记中会有两个属性(test\ 和 " +')")它无法识别并且不知道如何处理。