Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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 jquery替换为混合引号';及;_Javascript_Jquery_Replacewith - Fatal编程技术网

Javascript jquery替换为混合引号';及;

Javascript jquery替换为混合引号';及;,javascript,jquery,replacewith,Javascript,Jquery,Replacewith,我已经编写了几行JQuery代码,它们将列表中的一个项目从登录链接替换为注销链接,反之亦然。它还会将页面滚动回顶部。我不得不混合使用单引号和双引号。显然,这一准则: $('#myntamsloti').replaceWith("<li id="myntamsloto"><a href="#" onClick="javascript: $('html, body').animate({scrollTop: $('#login').offset().top}, 600);">

我已经编写了几行JQuery代码,它们将列表中的一个项目从登录链接替换为注销链接,反之亦然。它还会将页面滚动回顶部。我不得不混合使用单引号和双引号。显然,这一准则:

$('#myntamsloti').replaceWith("<li id="myntamsloto"><a href="#" onClick="javascript: $('html, body').animate({scrollTop: $('#login').offset().top}, 600);">LogIn</a></li>");
$('myntamsloti')。替换为(“
  • ”;
    当第一组引号被解释为语句的结尾时,给出一个错误。切换它们会延长命令的执行时间,但我找不到一个组合来允许整行运行。所以,我把队伍切碎了:

    var htmlinsert = '<li id="myntamsloto"><a href="#" onClick="javascript: ';
    htmlinsert = htmlinsert + "$('html, body').animate({scrollTop:$('#login').offset().top}, 600);";
    htmlinsert = htmlinsert + '">LogIn</a></li>';
    
    $('#myntamsloti').replaceWith(htmlinsert);
    
    var htmlinsert='
  • ; $('myntamsloti')。替换为(htmlinsert);
    它是有效的,但我从来没见过这个


    还有更优雅的方法吗?

    您可以使用
    replaceWith()
    修改单行代码,以使用正确的引号。您需要使用不同的引号来分隔字符串和其中的属性,然后转义内部引号,这些引号必须与分隔字符串的引号匹配。试试这个:

    $('#myntamsloti').replaceWith('<li id="myntamsloto"><a href="#" onclick="javascript: $(\'html, body\').animate({scrollTop: $(\'#login\').offset().top}, 600);">LogIn</a></li>');
    

    您可以使用
    replaceWith()
    修改单行代码,以使用正确的引号。您需要使用不同的引号来分隔字符串和其中的属性,然后转义内部引号,这些引号必须与分隔字符串的引号匹配。试试这个:

    $('#myntamsloti').replaceWith('<li id="myntamsloto"><a href="#" onclick="javascript: $(\'html, body\').animate({scrollTop: $(\'#login\').offset().top}, 600);">LogIn</a></li>');
    

    用一种编程友好的方式来做怎么样

    是的,它有更多的代码行,但它还有一个额外的好处,即您可以对定义的对象做更多的工作,并且可以在click处理程序中使用作用域变量,您的inspect源代码将更干净

    $myntamsloto=$('
  • ); $myntamslotoLink=$(''); $myntamslotoLink.on('click',function(){ $('html,body')。设置动画({ scrollTop:$('#login').offset().top }, 600); }); $myntamsloto.append($myntamslotoLink); $('myntamsloto')。替换为($myntamsloto)
    
    登录
    
    • 酒吧
    • baz

    用一种编程友好的方式来做怎么样

    是的,它有更多的代码行,但它还有一个额外的好处,即您可以对定义的对象做更多的工作,并且可以在click处理程序中使用作用域变量,您的inspect源代码将更干净

    $myntamsloto=$('
  • ); $myntamslotoLink=$(''); $myntamslotoLink.on('click',function(){ $('html,body')。设置动画({ scrollTop:$('#login').offset().top }, 600); }); $myntamsloto.append($myntamslotoLink); $('myntamsloto')。替换为($myntamsloto)
    
    登录
    
    • 酒吧
    • baz

    更加优雅!谢谢,没问题,很高兴能帮你更优雅!谢谢,没问题,很乐意帮忙