Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript I';我在单引号的属性中得到了双引号,我如何才能阻止它?_Javascript_Jquery - Fatal编程技术网

Javascript I';我在单引号的属性中得到了双引号,我如何才能阻止它?

Javascript I';我在单引号的属性中得到了双引号,我如何才能阻止它?,javascript,jquery,Javascript,Jquery,我有一个变量,并在其中存储了一个标记。我在双引号中设置了这个标记,并且我的标记有一些属性和事件,它们都在单引号中。现在的问题是,我在标记中得到了双引号,而以前是单引号。我想在一些属性的标记中使用单引号 var test= "<tr><td><input type='text' class='demo_class' onchange='myfun(this,'val')'></td></tr>" var test=“” 它在浏览器中给

我有一个变量,并在其中存储了一个标记。我在双引号中设置了这个标记,并且我的标记有一些属性和事件,它们都在单引号中。现在的问题是,我在标记中得到了双引号,而以前是单引号。我想在一些属性的标记中使用单引号

var test= "<tr><td><input type='text' class='demo_class' onchange='myfun(this,'val')'></td></tr>"
var test=“”
它在浏览器中给了我结果

<input type="text" class="demo_class" onchange="myfun(this,"val")">

但是我想

<input type="text" class="demo_class" onchange="myfun(this,'val')">

var测试='';

您需要用\symbole转义包含在同一引号类型中的引号

例如:

var test = '<tr><td><input type="text" class="demo_class" onchange="myfun(this,\'val\')"></td></tr>';
var测试=”;
否则,以“或”开头的字符串将被视为终止于遇到的第一个非转义的“或”

此外,在js中,分隔html属性值的引号始终解析为“独立于您使用的内容”或,这样就可以避免使用“符号”来分隔html属性值的混淆,如本例所示


document.body.innerHTML='';
您可以尝试两种方法:

  • 使用一种方法清理HTML并通过以下方式发送
    test
    var:
    result=sanitize(test);

  • 尝试使用HTML实体作为
    而不是简单的引号符号

  • const Q=”“”
    让测试=``
    
    编辑

  • 它可能与字符串插值方法一起工作
  • let测试=``
    
    我得到了下面给出的解决方案

    var test= "<tr><td><input type='text' class='demo_class' onchange='myfun(this,&apos;val&apos;)'></td></tr>"
    
    var test=“”
    

    谢谢大家:)

    键入内联事件处理程序是一项要求吗?通常认为这是过时的做法,最好是添加数据属性并使用事件侦听器。我有一篇老帖子:可能是重复的我需要该事件和那些值,但你需要将其附加到HTML标记本身中,还是将其附加到HTML标记本身中通过使用javascript中的事件监听器连接它?我建议使用事件监听器,但在您的工作范围内做您需要的事情。它会在响应中使用双引号更正!!如果有帮助,请立即尝试!我已经在chrome和firefox上测试了这一点,并且保留了我对您的问题的理解。简单在您的控制台中测试:document.body.innerHTML='';我保留:也许您是如何使用此字符串更新html的?在哪个浏览器中?请将此标记为结束问题的答案。谢谢。
    const sanitize = (str) => {
      return String(str)
        .replace(/"/g, "'");
    };
    
    const Q = "&quot;"
    let test= `<tr><td><input type=${Q}text${Q} class=${Q}demo_class${Q} 
    onchange=${Q}myfun(this,${Q}val${Q})${Q}></td></tr>`
    
    let test= `<tr><td><input type='text' class='demo_class' onchange='myfun(this, 'val')'></td></tr>`
    
    var test= "<tr><td><input type='text' class='demo_class' onchange='myfun(this,&apos;val&apos;)'></td></tr>"