我正在尝试更多地编写我的jquery 面向对象的方式,但我不工作, 你能帮忙吗?结果我得到了 是对象
$(document).ready(function () {
var divA = $('<div>', { class: 'divA' });
var btn = $('<span>', { text: 'MYspanBTN' });
btn.click(function(){
alert('test');
});
var divResult = $('<div>', { html: divA + btn });
$('#main').append(divResult);
});
答案 0 :(得分:3)
替换它:
var divResult = $('<div>', { html: divA + btn });
用这个:
var divResult = $('<div>').append(divA, btn);
答案 1 :(得分:2)
那里有几个问题:
<{{1>}是一个保留字,所以要在对象初始值设定项中使用它作为属性名,你必须把它放在引号中(单个或双个,或者没关系)。实际上,那不是真的。在您使用它的特定位置,它实际上没问题。不过我不推荐它。将其放在单引号或双引号中:class
您的var divA = $('<div>', { 'class': 'divA' });
正在尝试合并两个对象实例。如果您的目标是合并他们的HTML,那么html: divA + btn
。如果您的目标是使html: divA.html() + btn.html()
成为包含这两个元素的集合,请不要使用divResult
,请执行以下操作:
html
...使用这两个集合的内容创建一个新的jQuery集合(在您的情况下,每个集合只包含一个元素,因此var divResult = divA.add(btn);
最终将包含两个元素。)
答案 2 :(得分:0)
可能是因为class
是javascript中的保留关键字
关于连接,这是错误的,所以使用:
var divResult = $('<div>').append(divA, btn);
而不是
var divResult = $('<div>', { html: divA + btn });