代码之家  ›  专栏  ›  技术社区  ›  chris342423

JavaScript:单引号'导致错误

  •  0
  • chris342423  · 技术社区  · 10 年前

    我有一个字符串,里面有一个':

    <a href="#" onclick="if (confirm('... &#039; ...')) { document.exampleFormName.submit(); }">example link text</a>
    

    不幸的是,这似乎行不通。Firebug在参数列表后显示“SyntaxError:missing)”,您可以看到HTML实体已经被'替换。

    我可以做什么来避免这个问题?

    3 回复  |  直到 10 年前
        1
  •  5
  •   Kokizzu    10 年前

    像XD那样写不漂亮

    <a href="#" onclick="if (confirm('... &#039; ...')) { document.exampleFormName.submit(); }">example link text</a>
    

    最好使用函数

    <script>
      function foo() {
        if (confirm("...' ...")) { document.exampleFormName.submit(); }
        return false; // disable the link
      }
    </script>
    <a href='#' onclick='return foo()'>example link text</a>
    

    但也许只有我。。

        2
  •  3
  •   Tschallacka    10 年前

    你应该转义引号。不要使用html实体。 在“”字符串中,使用“”转义单引号。

    阅读有关转义字符的详细信息: https://mathiasbynens.be/notes/javascript-escapes

        
        <a href="#" onclick="if (confirm('... \' ...')) { document.exampleFormName.submit(); }">example link text</a>
        3
  •  1
  •   M3ghana    10 年前

    试试这个

    <a href='#' onclick='if (confirm("... &#039; ...")) 
    { 
      document.exampleFormName.submit(); 
    }'> example link text
    </a>
    

    因为“#039”代表单引号,所以('…'…')在您之前的代码中会因为这个原因而失败