こんにちは、順序付けられていない要素のリストがあります。<p>
クリックすると、要素を 2 つに分割しながら挿入したいと思います<ul>
。
問題は、要素を要素から$("</ul>"+text+"<ul class=\"test\">").insertAfter(element);
分離しているように見え、最初にタグを挿入してからタグを挿入することです。<p>
<ul>
<p>
<ul>
<ul>
また、要素の直前と直後の開始と終了を削除して、別の場所で.temp
分割できるようにしたいと思います。<ul>
これは私が見つけた唯一の方法でしたが、<p>
要素を削除するだけです:$('.temp').remove();
これの開始時にページがフォーマットされる方法は、まさに私が求めているものです。JSは少し壊れています。 http://jsfiddle.net/yU65g/1/
JS:
$(".test li").click(function () {
var text = "<p class=\"temp\">Test</p>";
var index = $(".test li").index(this);
$("span").text("That was div index #" + index);
var element = $('.test li').get(index);
$('.temp').remove();
$("</ul>"+text+"<ul class=\"test\">").insertAfter(element);
});
HTML:
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<span>Click a div!</span>
<ul class="test">
<li>First div</li>
<li>Second div</li>
<li>Third div</li>
</ul>
<p class="temp">Test</p>
<ul class="test">
<li>Fourth div</li>
<li>Fith div</li>
<li>Sixth div</li>
</ul>
</body>
</html>
CSS:
.test li { background:yellow; margin:5px; }
span { color:red; }
.test {border: solid 1px red; clear:both; margin: 1em;}
.temp {clear:both;}