附加jquery对象为什么不工作

时间:2013-10-07 07:49:30

标签: jquery

我正在尝试更多地编写我的jquery 面向对象的方式,但我不工作, 你能帮忙吗?结果我得到了 是对象

http://jsfiddle.net/Nrebv/

$(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);

});

3 个答案:

答案 0 :(得分:3)

替换它:

var divResult = $('<div>', { html: divA + btn });

用这个:

var divResult = $('<div>').append(divA, btn);

FIDDLE DEMO

答案 1 :(得分:2)

那里有几个问题:

  1. <{{1>}是一个保留字,所以要在对象初始值设定项中使用它作为属性名,你必须把它放在引号中(单个或双个,或者没关系)。实际上,那不是真的。在您使用它的特定位置,它实际上没问题。不过我不推荐它。将其放在单引号或双引号中:class

  2. 您的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中的保留关键字

Reserved Words - MDN

关于连接,这是错误的,所以使用:

var divResult = $('<div>').append(divA, btn);

而不是

    var divResult = $('<div>', { html: divA + btn });