2

我还创建了一个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 部分,因为它也在其他页面上使用。

4

1 回答 1

1

您可以使用prependTo

$(document).ready(function () {
    $('li').each(function () {
        var $this = $(this);
        $('p.ui-li-aside', $this).prependTo($this);
    });
});

检查小提琴

于 2013-06-06T09:00:50.493 回答