我希望首先用div替换一个元素,然后div将通过append()生成一些子元素:
$(el).html('<div></div>').append('<span></span>').append('<span></span>')
不能给我我想要的东西,因为div和跨度是兄弟姐妹。
我也尝试过:
$(el).replaceWith('<div></div>').append('<span></span>').append('<span></span>')
没有成功。此行不适用于AngularJS(指令)。
是否有一种简单的方法可以跨越div的孩子?
更新:
这是我最终使用的:
$(element)
.html($('<div class="property-filter"></div>')
.append(labelElm)
.append(amountElm)
.append(sliderElm));
因为它很容易理解(对我而言)。
感谢所有解决方案!
答案 0 :(得分: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);
答案 1 :(得分:2)
为什么不简单地这样做?
$(el).html('<div><span></span><span></span></div>')
答案 2 :(得分:1)
试试这个
var div= $('<div></div>')
var mm= $('<span>b</span>')
var combnd= div.append(mm)
var fresult=combnd.append(mm)
fresult.appendTo(el)
答案 3 :(得分:1)
$(el).html($('<div />').append('<span></span>').append('<span></span>'))
答案 4 :(得分:1)
使用此
var div = $('<div></div>').append('<span></span>').append('<span></span>');
$(el).parent().html(div);
答案 5 :(得分:1)
这取代了$(el)
的内容,就像你问的那样:
$(el).html('<span />').append('<span />').wrapInner('<div />');