当我使用 jQuery 作为字符串创建嵌套 DOM 元素时会发生什么?
当我使用以下内容时会发生什么,有什么语义差异吗?
方法一:
var task = $('<li class="task"><header><h1></h1></header></li>')
$('#backlog-tasks').append(task);
方法二:
var task = $('<li>').attr('class','task');
task.append('<header>');
.....
第二个问题:是否有一种比上述方法更受您青睐的方法?
示例
What happens when I use the following, and is there any semantic difference?
Method one:
var task = $('<li class="task"><header><h1></h1></header></li>')
$('#backlog-tasks').append(task);
Method two:
var task = $('<li>').attr('class','task');
task.append('<header>');
.....
A secondary question: Is there an approach which you favour over the above?
Example
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
正如 jQuery 文档中所述,方法 1 由浏览器解析,而方法 2 则不然。这在散文中很难找到,
但它肯定是存在的。 (强调我的。)
我倾向于使用方法 2,原因如下:
更多关于最后一个的内容。假设您需要根据用户输入设置某些元素的
style
(可能难以置信,但我想不出更好的例子)。方法 1
现在考虑一下
' onclick="$.ajax(/* some bad parameters */)" data-dummy='
的输入
。 (或者我相信你能想到更糟糕的情况。)这不是有史以来最令人向往的事情。方法2
好多了。
As noted in the jQuery documentation, method 1 is parsed by the browser, while method 2 isn't. This is rather hard to find in the prose,
but it definitely is there. (Emphasis mine.)
I tend to use method 2, for several reasons:
More on that last one. Say you need to set the
style
of some element according to user input (probably implausible, but I couldn't think of a better example).Method 1
Now think about an
input
of' onclick="$.ajax(/* some evil parameters */)" data-dummy='
. (Or I'm sure you can think of worse.) Not the most desirable thing ever.Method 2
Much better.