我还创建了一个jsfiddle来证明我的问题。
我需要有时间在标题之前。
<ul>
<li>
<h3>Title 1</h3>
<p>Speaker 1</p>
<p class="ui-li-aside"><b>Time 1</b></p>
</li>
<li>
<h3>Title 2</h3>
<p>Speaker 2</p>
<p class="ui-li-aside"><b>Time 2</b></p>
</li>
<li>
<h3>Title 3</h3>
<p>Speaker 3</p>
<p class="ui-li-aside"><b>Time 3</b></p>
</li>
这有效:
$("li:nth-child(0) p.ui-li-aside").insertBefore("li:nth-child(0) h3");
但我不想为每个元素都这样做。
这不符合我的要求:
$("li:nth-child(n) p.ui-li-aside").insertBefore("li:nth-child(n) h3");
如何以更短的方式和任何元素编写? 我无法更改html部分,因为它也用于其他页面。
答案 0 :(得分:1)
您可以使用prependTo
$(document).ready(function () {
$('li').each(function () {
var $this = $(this);
$('p.ui-li-aside', $this).prependTo($this);
});
});
<强> Check Fiddle 强>