JQuery附加到变量元素

时间:2014-06-18 17:01:02

标签: javascript jquery html css

我正在构建由jquery支持的自己的JS库。构造函数开始在现有div的基础上构建以充实它。在库中我正在进行ajax调用,所以对于这个初始div我知道如何追加(这是传入的初始div):

var t = this;
var sdiv = t.append("<ul class='foo'></ul>");

所以现在我需要遍历并将元素追加到变量“sdiv”。出于某种原因

$(sdiv).append("<li class='bar'>" + element[i] + "</li>");

无效/渲染。如何将元素附加到作为变量创建的其他元素?

由于

2 个答案:

答案 0 :(得分:2)

它无效,因为sdivt变量相同,因为append会返回最初选择的元素。

相反,在其自己的变量中创建ul,然后在追加时使用该引用。试试这个:

var $t = $(this);
var $sdiv = $('<ul />', { class: 'foo' }).appendTo($t);

// in your loop...
$('<li />', { class: 'bar', text: element[i] }).appendTo($sdiv);

请注意,我还将this包装在jQuery对象中。假设此代码正在事件处理程序中执行,您需要这样做。

答案 1 :(得分:0)

@RoryMcCrossan提供了一个很好的答案。另一种方法可以如下:

var $t = $(this)
var $sdiv = $('<ul class="foo"/>');

然后在你的循环中执行以下操作:

 $sdiv.append( $('<ul class="bar"/>').text( element[i] ) );

然后最后将$sdiv追加到$t

 $t.append( $sdiv );