创建Html Javascript

创建Html Javascript,javascript,jquery,Javascript,Jquery,我在用javascript创建html字符串时遇到一些问题。它把引语放在了错误的地方,坦率地说,这看起来不是一种非常优雅的方式。有没有更干净的方法来创建下面的html?有人能开枪吗?我就是一个例子 $(filterList).append('<li id=\'' + filterItemId + '\'data-icon=\'delete\'><a onclick=' + '\'removeFilterItem(\'' + filterItemId + '\'' + ')\

我在用javascript创建html字符串时遇到一些问题。它把引语放在了错误的地方,坦率地说,这看起来不是一种非常优雅的方式。有没有更干净的方法来创建下面的html?有人能开枪吗?我就是一个例子

 $(filterList).append('<li id=\'' + filterItemId  + '\'data-icon=\'delete\'><a onclick=' + '\'removeFilterItem(\'' + filterItemId + '\'' + ')\'>' + name + '</a></li>').listview('refresh');
$(filterList).append(“
  • '+name+'
  • ”).listview('refresh');
    我正在尝试创建一个html字符串(由上面的变量创建),它看起来像

    <li id="someId" data-icon="delete"><a onclick="removeFilterItem('someId')">Jack</a></li>
    
    杰克
    使用jquery设置属性,而不是尝试编写字符串。这是wya,您不必担心字符串转义

    var $li = $("<li>");
    var $a = $("<a>");
    
    $a.appendTo($li);
    
    $li.attr("id", someID);
    
    $a.attr("onclick", "...");
    
    // ...
    $(filterList).append($li);
    
    var$li=$(“
  • ”); 变量$a=$(“”); $a.appendTo($li); $li.attr(“id”,someID); $a.attr(“onclick”,“onclick”); // ... $(过滤器列表).append($li);

  • 依此类推。

    使用两种类型的引号构建字符串没有什么错:

    $(filterList).append("<li id='" + filterItemId  + "' data-icon='delete'><a onclick='removeFilterItem('" + filterItemId + "' \>" + name + "</a></li>").listview('refresh');
    

    $(filterList).append(
  • 您可以使用双引号并预计算一些字符串:

     var script = "removeFilterItem('" + filterItemId + "');"
     $(filterList).append(
        '<li id="' + filterItemId + '" data-icon="delete">'
        + '<a onclick="'+script+'">' + name + '</a>'
        + '</li>'
     ).listview('refresh');
    
    var script=“removeFilterItem(“+filterItemId+”)
    $(过滤器列表)。附加(
    “
  • ” +''+姓名+''的 +“
  • ” ).listview(“刷新”);
    还要注意,缩进和分解也会简化任务(和维护)


    我不认为有太多的解释。

    你可以用双引号和单引号互换,以避免在单引号内转义单引号

    $(filterList).append('<li id="' + filterItemId  + '"data-icon="delete"><a onclick="removeFilterItem(\'' + filterItemId + '\')">' + name + '</a></li>').listview('refresh');
    
    $(filterList).append(“
  • “+name+”
  • ”).listview('refresh');
    在JavaScript中,您可以使用单引号或双引号,在这种情况下,我通常使用的是我的字符串外部的单引号,以及双引号。如果您发现需要经常这样做,特别是如果HTML更复杂,您可能需要考虑使用某种JS模板解决方案。 对于您的示例,以下内容应该有效

    $(filterList).append('<li id="' + + filterItemId  + '" data-icon="delete"><a onclick="removeFilterItem(' + filterItemId + ')">' + name + '</a></li>').listview('refresh');
    
    $(filterList).append(“
  • “+name+”
  • ”).listview('refresh');
    您应该使用双引号来减轻痛苦。在JavaScript中,您可以使用单引号或双引号,在这种情况下,我要做的是在字符串外部使用单引号,在字符串内部使用双引号。如果您有更多(更复杂)的你需要渲染的HTML可能需要考虑使用某种JS模板解决方案,你可以使用双引号“这样你就不必逃避单引号”IE花了2个小时试图得到正确的引文。我一定错过了什么东西?<代码> $(FieldLIST)。追加('“+name+”
  • ”).listview('refresh');
    如果使用更清晰的语法:
    $(“
  • ”,{id:someID})
  • $(“”,{click:func…}),我会这样做的
    我不熟悉jquery语法。添加得很好。+1在一两个地方,我可以看到它工作得很好,但在整个程序中?有人会错过双引号双引号双引号。这太不合理了。如果有很多内容要处理,你应该看看jquery模板。
    $(filterList).append('<li id="' + + filterItemId  + '" data-icon="delete"><a onclick="removeFilterItem(' + filterItemId + ')">' + name + '</a></li>').listview('refresh');