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