我有以下HTML
<aside>
<section class="links"></section>
<section class="downloads"></section>
<section class="news"></section>
<section class="contact"></section>
<aside>
我正在尝试在section.news之前插入</aside><aside>
(有效地将旁边的容器标签分成2个容器,每个容器中有2个部分)
我用:
$("aside section.news").before("</aside><aside>");
Jquery始终按照我的意愿打印<aside></aside>
而不是</aside><aside>
。
答案 0 :(得分:3)
DOM元素不是字符串,你不能使用JavaScript以这种方式添加元素,DOM元素是JavaScript对象,jQuery幕后调用创建DOM的createElement()
对象的document
方法HTMLElement对象,它不会在文档中添加字符串。
答案 1 :(得分:2)
这是“正确”的做法:
var $aside1 = $("aside:first");
var $aside2 = $("<aside><\/aside>").insertAfter($aside1);
$(".news").nextAll().addBack().appendTo($aside2);
答案 2 :(得分:0)
$('</aside><aside>').insertBefore('.news');
作为
<aside>
<section class="links"></section>
<section class="downloads"></section>
</aside><aside>
<section class="news"></section>
<section class="contact"></section>
<aside>
Reference关于.insertBefore
答案 3 :(得分:0)
$(document).ready(function(){
var one = $('aside').children().eq(0).clone().wrap('<p>').parent().html() + $('aside').children().eq(1).clone().wrap('<p>').parent().html()
var two = $('aside').children().eq(2).clone().wrap('<p>').parent().html() + $('aside').children().eq(3).clone().wrap('<p>').parent().html()
$('aside').before('<aside>'+one+'</aside');
$('aside').eq(1).html(two);
console.log(one)
console.log(two)
});