【问题标题】:Weird jQuery bug when creating elements创建元素时出现奇怪的 jQuery 错误
【发布时间】:2015-12-19 16:10:11
【问题描述】:

看看

var q = $('<div> test 1 </div>');

$('body').append(q);

q = $('<div> test 2 </div>');

页面打印“test 1”!为什么?

【问题讨论】:

  • 第 3 行更改时是否附加了 q ?
  • 没有,但如果我以前做过,为什么我必须这样做?
  • 因为 q 没有附加或绑定到 DOM,所以当您更改 q 时,没有可用的框架(如骨干或 Angular)在 q 更改更新 DOM 时创建侦听器。 Jquery 是一个使用较少语法的库:)
  • q 只是一个变量。更改变量的值不会影响您对先前值所做的事情。
  • 最流行的编程语言都是按值传递的。 JavaScript 在这里并没有什么不同。这肯定不是 jQuery 或 JavaScript 中的错误。

标签: javascript jquery append


【解决方案1】:

分配给变量不会影响之前分配给变量的数据。如果你想改变DOM,你必须修改变量引用的对象,而不是变量。

var q = $('<div> test 1 </div>');
$('body').append(q);
q.text(' test 2 ');
&lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt;/script&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 2023-03-09
    • 1970-01-01
    • 2015-06-03
    • 1970-01-01
    相关资源
    最近更新 更多