Jquery的append()方法和链顺序调试
我正在尝试使用 Jquery 将新行插入到表中。有人可以评论这两种技术吗:
这工作正常:
$('').append(row).appendTo(table);
这不起作用,但不清楚为什么?
$(row).appendTo($('')).appendTo(table);
I am attempting to insert a new row into a table with Jquery. Can someone comment between the two techniques:
This works correctly:
$('<tr>').append(row).appendTo(table);
This does not work, but it is not clear why?
$(row).appendTo($('<tr>')).appendTo(table);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
在你的第二个例子中......
你第二次调用
appendTo()
时的集合并不是你想象的那样。它将是行
。这个 jsFiddle 应该会更清楚。
In your second example...
The set when you call
appendTo()
the second time is not what you think it is. It will berow
.This jsFiddle should make it clearer.
尝试一下。看来您刚刚将括号的顺序弄错了。
Try that. It looks like you just placed your parentheses in the wrong order.
这会将行添加到新创建的
中。这将返回对
row
的 jQuery 引用 - NOT 到新创建的将
row
添加到table
,从而将其从新创建的中删除。
试试这个吧。它可以直接获取参考文献。
This adds row to a newly created
<tr>
. This returns a jQuery reference torow
- NOT to the newly created<tr>
Adds
row
totable
, thus removing it from the newly created<tr>
.Try this instead. It gets the references straight.
你的范围已关闭。 appendTo 不会改变链的范围。您将行附加到动态 tr,然后立即将其附加到表中。
Snowblind 的解决方案将起作用,这将起作用: $
(table).append($(row).wrap(''));
可能有一堆其他推导。只要确保您从中获得了一些链条理解即可。 :)
Your scope is off. appendTo will not change the scope of the chain. You're appending row a dynamic tr, then immediately appending it to the table.
Snowblind's solution will work, this will work: $
(table).append($(row).wrap('<tr></tr>'));
There are probably a bunch of other derivations. Just make sure you take a bit of chain understanding from this. : )