jQuery创建HTML元素

时间:2013-01-16 06:30:36

标签: javascript jquery html

我知道在jQuery中创建HTML元素的方法有很多种,但我看到人们要么显示:

$("<div></div>", {attrs...})

$("<div/>", {attrs...})

作为这样做的主要方法。

我发现了

$("<div>", {attrs...})

也很好。

为什么没有人展示第三种方法?它有潜在的问题吗?至于它所记录的结果,当我检查元素以查看创建的div时,它看起来大致相同。

4 个答案:

答案 0 :(得分:3)

创建包含$('<div>')$("<div>", {attrs...}) 等标记的html元素,这是创建html elmenets的记录方式,请检查here

当参数包含单个标记(带有可选的结束标记或快速关闭)时 - $("<img />") $("<img>") $( "<a></a>" ) { {1}} - jQuery使用本机JavaScript createElement()函数创建元素。

答案 1 :(得分:2)

让我们看一下jQuery源代码:

https://github.com/jquery/jquery/blob/master/src/core.js#L85

// Handle HTML strings
if (typeof selector === "string") {
  if (selector.charAt(0) === "<" && selector.charAt(selector.length - 1) === ">" && selector.length >= 3) {
    // Assume that strings that start and end with <> are HTML and skip the regex check
    match = [null, selector, null];
  }
  // ...
}

所以字符串必须以&lt;并以&gt;结束被视为HTML。所有这些变体都是有效的。我认为<div>最不受欢迎的原因是它提醒人们未封闭的标签,这是无效的HTML。但jQuery接受它。

答案 2 :(得分:1)

如果你正在做$('<div>'),jQuery也会使用document.createElement()

(只需看看http://code.jquery.com/jquery-1.4.2.js,第117行)。

有一些函数调用开销,但除非性能至关重要(你创建了数百[数千]个元素),否则没有太多理由可以恢复到纯DOM。

只是为新网页创建元素可能就是你最好坚持使用jQuery的做事方式。

答案 3 :(得分:0)

根据jQuery documentation: 为确保跨平台兼容性,代码段必须格式正确。可以包含其他元素的标记应与结束标记配对。

$( "<div></div>" ); 

但是不能包含元素的标签可以快速关闭或不按如下方式关闭:

$( "<img />" );
$( "<input>" );

虽然<div>,但</div>可能在某些浏览器中适用于您,但结果可能会因浏览器而异,甚至可能在同一浏览器的不同版本中有所不同。为安全起见,请始终坚持标准和文档最佳做法