【问题标题】:javascript onclick apostrophe quotation mark issuejavascript onclick撇号引号问题
【发布时间】:2012-09-18 15:19:28
【问题描述】:

好的,我从 ajax 调用中获取一些数据,需要通过 javascript 将值作为参数存储到 onclick 元素。

例如

output = "<a href = '#' onclick = 'deleteFileName('" + trim(splitString[i]) + "')'> delete File </a>";

这行为很奇怪。当我用 chrome 检查元素时,输出如下所示

<a href="#" onclick="deleteFileName("0design mockup.xlsx')'> delete File </a>

显然应该是这样的

<a href = "#" onclick = "deleteFileName('0design mockup.xlsx')">

参数是一个字符串,所以我需要在它周围加上引号。这可能不是最好的方法,但为什么要让前两个引号成为双引号,然后是最后两个单引号?

*这是一个使用 ajax 调用来收集信息的 JSP 服务器。函数“deleteFileName(fileNameIn)”是一个 ajax 调用。 (我不认为这是必要的信息,但你永远不知道)

【问题讨论】:

    标签: javascript html syntax


    【解决方案1】:

    您不能对 onclick 的值和函数调用使用相同类型的引号。一个需要单引号,另一个需要双引号(放在哪里不重要)。否则,您将使用函数调用的第一个单引号关闭 onclick 属性。

    例子:

    output = "<a href = '#' onclick = 'deleteFileName(\"" + trim(splitString[i]) + "\")'> delete File </a>";
    

    【讨论】:

    • gah,好吧,这只是我的愚蠢。我现在明白了,在我的小世界里,我决定单引号的处理方式与双引号不同,哈哈。谢谢
    【解决方案2】:

    建议你直接 wget 或 curl 页面(或使用浏览器的查看源代码功能),而不是查看信息。这些天来,我发现许多浏览器会在检查器中巧妙地错误地显示信息,以试图很好地格式化所有内容。

    从等式中删除浏览器是一个很好的第一步,因为这会告诉您问题发生的确切位置。

    【讨论】:

    • 查看源代码没有帮助,因为我在页面加载后使用 javascript 粘贴数据库信息。源信息只是我布置的基本 HTML(divs/tables)并在事后使用 Javascript 填充,因为信息是非常动态的。我的 IDE 没有诊断功能,而且我使用的公司机器不允许我下载新软件 :(
    猜你喜欢
    • 2023-03-27
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多