2013-06-06 63 views
2

我也創建了一個jsfiddle來演示我的問題。jquery insertbefore多個元素

我需要有標題前的時間。

<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部分,因爲它也用於其他頁面。

回答

1

您可以使用prependTo

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

Check Fiddle

+0

感謝,這正是我所需要的! – user2458806

+0

很高興有幫助:) –