当我使用以下内容时会发生什么,并且是否存在语义差异?
var task = $('<li class="task"><header><h1></h1></header></li>')
$('#backlog-tasks').append(task);
var task = $('<li>').attr('class','task');
task.append('<header>');
.....
第二个问题:您是否赞成采用上述方法?
答案 0 :(得分:0)
如jQuery文档中所述,方法1由浏览器解析,而方法2则不是。这在散文中很难找到,
... jQuery 使用浏览器的
.innerHTML
属性来解析传递的HTML 并将其插入当前文档中。在此过程中,某些浏览器会过滤掉某些元素,例如<html>
,<title>
或<head>
元素。因此,插入的元素可能无法代表传递的原始字符串。
但它绝对存在。 (强调我的。)
我倾向于使用方法2,原因如下:
关于最后一个的更多信息。假设您需要根据用户输入设置某个元素的style
(可能难以置信,但我想不出更好的例子)。
$("<p style='" + input + "'>")
现在考虑一下input
' onclick="$.ajax(/* some evil parameters */)" data-dummy='
。 (或者我相信你可以想到更糟。)不是最令人向往的事情。
$("<p>").attr("style", input)
好多了。