【问题标题】:Using multiple quotes and double quotes in JavaScript在 JavaScript 中使用多引号和双引号
【发布时间】:2014-06-14 10:19:42
【问题描述】:

我想在几个引号和双引号内运行一个函数,但它不起作用

document.getElementById("loggedin")
.innerHTML="welcome " + user + "<a onclick=deletecookie()> yes </a>";

【问题讨论】:

标签: javascript quotes double-quotes


【解决方案1】:

应该是

document.getElementById("loggedin")
    .innerHTML="welcome " + user + "<a onclick='deletecookie()'> yes </a>";

请参阅this question,了解为什么应该在 HTML5 属性周围包含引号。

不过,一般来说,最好通过您的 javascript 代码中的 jQuery 事件侦听器来绑定这样的东西,而不是将其注入到 DOM 中。例如:

document.getElementById('loggedin')
    .innerHTML = "welcome " + user + "<a> yes </a>";
$('#loggedin').on('click', 'a', deletecookie);

这可以让您的 javascript 与您呈现的 HTML 隔离,并让您更清楚地了解如何为未来的开发进行设置。

【讨论】:

  • 为什么需要引号? $ 是什么?
  • 引号是跨浏览器支持所必需的。 $ 是 jQuery,但我想你也可以使用直接的 javascript 来做到这一点。
  • 也许你应该解释一下 jQuery 是什么并添加一个链接。哪些浏览器存在未引用属性值的问题?属性值的引号在 HTML 中是可选的,除非该值包含无效字符(例如空格)。
【解决方案2】:

或者你可以使用转义的双引号,如下所示。

document.getElementById("loggedin").innerHTML="welcome " + user + "<a onclick=\"deletecookie()\"> yes </a>";

【讨论】:

  • 最好给我们看一个测试用例。我在 jsfiddle (jsfiddle.net/yvanavermaet/46gfM) 中创建了上述代码的示例,它工作正常。
  • 它只是说“欢迎 g%40yahoo.com 是的”,当你点击是时,什么都没有发生
  • 打开浏览器的控制台。我写的这段代码会输出消息“delete cookie”。
  • 你的意思是我点击 ctrl + shift + j 并准确粘贴你写的内容??
  • 您应该用我的代码更新您的代码(如您最初的问题中所写)。如果这对您不起作用,那么我相信您在其他地方有错误。您能否完整解释什么不起作用或提供示例?
猜你喜欢
  • 2015-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-07
相关资源
最近更新 更多