jQuery使用javascript链接附加HTML

jQuery使用javascript链接附加HTML,javascript,jquery,html,append,Javascript,Jquery,Html,Append,在这种情况下,我应该用jQuery附加html。在这个html中有一个a标记,其中javascript作为链接 我怎样才能解决这个问题 $(".messages-wrapper").append('<li class="chat-wrapper"><a class="chat" href="javascript:openChat('http://domain.com/Messenger.aspx'">Chat öffnen<span></span>

在这种情况下,我应该用jQuery附加html。在这个html中有一个a标记,其中javascript作为链接

我怎样才能解决这个问题

$(".messages-wrapper").append('<li class="chat-wrapper"><a class="chat" href="javascript:openChat('http://domain.com/Messenger.aspx'">Chat öffnen<span></span><small>Chat öffnen</small></a></li>')
$(“.messages wrapper”).append(“
  • ”)

    谢谢

    可以用反斜杠转义字符串中的单引号或双引号

    '... href="javascript:openChat(\'http...\')">...'
    

    只需使用
    \'
    对字符串中的撇号进行转义即可:

    $(".messages-wrapper")
    .append('<li class="chat-wrapper"><a class="chat" href="javascript:openChat(\'http://domain.com/Messenger.aspx\'">Chat öffnen<span></span><small>Chat öffnen</small></a></li>');
    
    $(“.messages包装器”)
    .append(“
  • ”);
    由于字符串中的引号,您可能遇到了问题。单引号提前终止字符串并导致javascript错误

    但是,请考虑在附加html的同时应用hander

     var link = $('<li class="chat-wrapper"><a class="chat" href="http://domain.com/Messenger.aspx">Chat öffnen<span></span><small>Chat öffnen</small></a></li>')
                .find('a')
                .click( function() {
                     openChat($(this).attr('href'));
                     return false;
                });
     link.appendTo(".messages-wrapper");
    
    var-link=$('
  • ) .find('a')) 。单击(函数(){ openChat($(this.attr('href')); 返回false; }); link.appendTo(“.messages包装器”);
    只需使用已创建对象的嵌套附加,即可执行单击操作

    $('.messages-wrapper')
      .append(
        $('<li class="chat-wrapper" />")
          .append(
            $('<a class="chat" href="http://domain.com/Messenger.aspx"><small>Chat öffnen</small></a>')
              .click(function(){
                openChat(this.href);
                return false;
              })
          )
      );
    $('.messages包装器')
    .附加(
    $(“
  • ”) .附加( $('') 。单击(函数(){ openChat(this.href); 返回false; }) ) );

  • 无论如何,这是更容易阅读的意图,如果没有启用JavaScript,IMO.

    +1,将优雅地降级,尽管我猜测聊天页面需要JS。乔尔:如果JavaScript未启用,可以考虑如何用JavaScript创建代码……你完全错过了这个点。如果没有启用JavaScript,代码就不能了。这样创建的链接不会执行。@Guffa,你是对的。但是,我仍然不鼓励在标记中嵌入javascript,甚至是javascript生成的标记。@Guffa-你是对的,当然,你在我早上喝咖啡之前抓住了我,我没有重新阅读我的答案就回答了。在我的情况下,我通常做的只是将HTML内联并添加句柄如果聊天页面确实需要javascript,那么这将是添加HTML的更好方法,因为除非启用javascript,否则它将不存在。