【发布时间】:2012-02-25 05:44:49
【问题描述】:
当我向 body 添加一个 div 时,它会将 body 作为对象返回,然后每当我使用它时 - 它显然是在使用 body。不好。
代码:-
var holdyDiv = $('body').append('div');
$(holdyDiv).attr('id', 'holdy');
holdy 的“id”现在被添加到 body 中……嗯?我做错了什么。
【问题讨论】:
当我向 body 添加一个 div 时,它会将 body 作为对象返回,然后每当我使用它时 - 它显然是在使用 body。不好。
代码:-
var holdyDiv = $('body').append('div');
$(holdyDiv).attr('id', 'holdy');
holdy 的“id”现在被添加到 body 中……嗯?我做错了什么。
【问题讨论】:
jQuery 方法返回它们所应用的集合。
使用.appendTo:
var $div = $('<div />').appendTo('body');
$div.attr('id', 'holdy');
【讨论】:
$('body').append($('<div/>', {
id: 'holdy'
}));
【讨论】:
$('</div>').attr('id', 'holdy').appendTo('body');
【讨论】:
改为使用appendTo。 append 或 appendTo 返回一个 jQuery 对象,因此您不必将其包装在 $() 中。
var holdyDiv = $('<div />').appendTo('body');
holdyDiv.attr('id', 'holdy');
.appendTo()参考:http://api.jquery.com/appendTo/
或者你也可以试试这个。
$('<div />', { id: 'holdy' }).appendTo('body');
^
(Here you can specify any attribute/value pair you want)
【讨论】:
var holdyDiv = $('div').appendTo('body'); 应该是 var holdyDiv = $('<div />').appendTo('body');。注意更改:'div' --> '<div />'。正如答案中所写,'holdy' id 将错误地应用于所有预先存在的 div,而不仅仅是一个新创建的 div。
使用 jQuery appendTo 试试这个:
var holdyDiv = $('<div></div>').attr('id', 'holdy');
holdyDiv.appendTo('body');
【讨论】:
var $div = $('<div />').appendTo('body');
$div.attr('id', 'holdy');
【讨论】:
var $div=$('div')... 错误地引用了所有预先存在的 div。此更正:var $div=$('<div/>)...` 正确指代单个新创建的 div。接受的答案随后被编辑。感谢@Abhishek。 (其他一些答案也抓住了这一点。)