2

我希望一个元素首先被一个 div 替换,然后该 div 将通过 append() 生成一些子元素:

$(el).html('<div></div>').append('<span></span>').append('<span></span>')

没有给我我想要的东西,因为 div 和 span 是兄弟姐妹。

我也试过:

$(el).replaceWith('<div></div>').append('<span></span>').append('<span></span>')

没有成功。此行不适用于 AngularJS(指令)。

有没有一种简单的方法来制作 div 的 spans 子项?

更新:

这就是我最终使用的:

$(element)
  .html($('<div class="property-filter"></div>')
  .append(labelElm)
  .append(amountElm)
  .append(sliderElm));

因为它很容易理解(对我来说)。

感谢所有解决方案!

4

6 回答 6

5

您的代码不起作用,因为$(el).html('<div></div>')返回$(el). 它用于方法链。

$(el).html($('<div></div>').append('<span></span>').append('<span></span>'));​

或者

$('<div></div>').append('<span></span>').append('<span></span>').appendTo(el);
于 2012-08-23T12:28:23.203 回答
2

为什么不简单地这样做呢?

$(el).html('<div><span></span><span></span></div>')
于 2012-08-23T12:30:49.057 回答
1

这将替换$(el)您询问的内容:

$(el).html('<span />').append('<span />').wrapInner('<div />');​
于 2012-08-23T12:36:44.587 回答
1

用这个

var div = $('<div></div>').append('<span></span>').append('<span></span>');

$(el).parent().html(div);​
于 2012-08-23T12:33:37.330 回答
1

$(el).html($('<div />').append('<span></span>').append('<span></span>'))

于 2012-08-23T12:28:39.000 回答
1

尝试这个

var div= $('<div></div>')
var mm= $('<span>b</span>')
var combnd= div.append(mm)
var fresult=combnd.append(mm)
fresult.appendTo(el)​
于 2012-08-23T12:27:13.003 回答