使用 jQuery 创建新元素的首选方式

IT技术 javascript jquery append createelement jquery-append
2021-01-19 11:18:45

我有 2 种方法可以创建<div>using jQuery.

任何一个:

var div = $("<div></div>");
$("#box").append(div);

或者:

$("#box").append("<div></div>");

除了可重用性之外,使用第二种方式有什么缺点?

6个回答

第一个选项为您提供了更大的灵活性:

var $div = $("<div>", {id: "foo", "class": "a"});
$div.click(function(){ /* ... */ });
$("#box").append($div);

当然,.html('*')覆盖内容而.append('*')不会覆盖,但我想,这不是你的问题。

另一个好的做法是在您的 jQuery 变量前加上前缀$
在 jQuery 中使用 $ 和变量是否有任何特定原因

"class"属性名称周围加上引号将使其与不太灵活的浏览器更兼容。

@gdoron 请看看我的问题stackoverflow.com/questions/35413044/...
2021-03-18 11:18:45
这些美元符号是必要的还是错别字?$div. 我以前从未见过这种语法,但我是 Jquery 的新手。
2021-04-01 11:18:45
这种创建元素的方式的文档在哪里?$("<div>", {id: "foo", class: "a"});. 我想知道是否还有其他选择
2021-04-04 11:18:45
$在我看来,以“ 开头的 jQuery 集合名称也是一个很好的做法只需注意您所做的不需要$div$("<div>", {id: 'foo', class: 'a', click: function () {}}).appendTo("#box");
2021-04-11 11:18:45
我总是使用 $ 是变量是一个 jquery 对象, $_ 如果它是一个 jQuery 集合,而 _var 如果它是一个计数器。常规变量的 var。
2021-04-11 11:18:45

我个人认为代码的可读性和可编辑性比性​​能更重要。无论您发现哪个更容易查看,它都应该是您针对上述因素选择的那个。你可以把它写成:

$('#box').append(
  $('<div/>')
    .attr("id", "newDiv1")
    .addClass("newDiv purple bloated")
    .append("<span/>")
      .text("hello world")
);

你的第一个方法是:

// create an element with an object literal, defining properties
var $e = $("<div>", {id: "newDiv1", name: 'test', class: "aClass"});
$e.click(function(){ /* ... */ });
// add the element to the body
$("#box").append($e);

但就可读性而言;jQuery 方法是我最喜欢的遵循这个有用的 jQuery 技巧、注释和最佳实践

2021-03-17 11:18:45
感谢您提供指向有关创建新 HTML 元素jQuery 参考的链接很难用谷歌搜索。
2021-03-31 11:18:45

更有表现力的方式,

jQuery('<div/>', {
    "id": 'foo',
    "name": 'mainDiv',
    "class": 'wrapper',
    "click": function() {
      jQuery(this).toggleClass("test");
    }}).appendTo('selector');

参考:文档

class 应该用引号引起来,根据文档(通过上面的文档链接):“名称“class”必须在对象中引用,因为它是 JavaScript 保留字,并且不能使用“className”,因为它指的是 DOM 属性,不是属性。”
2021-04-07 11:18:45

根据jQuery官方文档

创建一个 HTML 元素,$("<div/>")或者$("<div></div>")是首选。

然后您可以使用appendToappendbeforeafter等。将新元素插入 DOM。

PS:jQuery 版本 1.11.x

根据3.4的文档,最好将属性与attr()方法一起使用

$('<div></div>').attr(
  {
    id: 'some dynanmic|static id',
    "class": 'some dynanmic|static class'
  }
).click(function() {
  $( "span", this ).addClass( "bar" ); // example from the docs
});
我加了引号。如果您不加class引号,这将无声地失败并可能导致精神错乱。
2021-04-09 11:18:45