2013-03-22 62 views
2

我試過WrapWrapALlnextUntil但它相當棘手的這一個。我有這樣的HTML圍繞一個特定的div

     <ul class="quick-list quick-glance hideOnSearch show-for-medium-up"> 
       <li><span class="strong">Price:</span> $198000</li> 
       <li><span class="strong">Miles:</span> 349999</li> 
       <li><span class="strong">Vehicle Type:</span> Minivans and Vans</li> 
     </ul> 

,我希望它看起來像

<ul class="accordion show-for-small hide-for-medium-up"> 
     <li> 
       <div class="title">TITLE</div> 
       <div class="content"> 
        
          <ul class="quick-list quick-glance hideOnSearch show-for-medium-up"> 
            <li><span class="strong">Price:</span> $198000</li> 
            <li><span class="strong">Miles:</span> 349999</li> 
            <li><span class="strong">Vehicle Type:</span> Minivans and Vans</li> 
          </ul> 
        
       </div> 
     </li> 
    </ul> 

我想這

$('ul.quick-list').wrapAll('<ul class="accordion"><li><div class="title">TITLE</div><div class="content"></div></li></ul>'); //Single page Top accordion 

但它放在錯誤的地方quick-list

我該怎麼用jQuery做到這一點?

+1

請出示你試過的代碼。很難說沒有看到它出了什麼問題。 – JJJ 2013-03-22 11:34:20

+0

將其添加到問題 – user1889007 2013-03-22 11:35:53

回答

1

wrapAll()只支持一個內部元素,你有兩個。解決方案:

$('ul.quick-list').wrap('<ul class="accordion"><li><div class="content"></div></li></ul>'); 
$('.content').before('<div class="title">TITLE</div>'); 

看到一個例子:http://jsfiddle.net/powtac/HzDCD/1/

+0

謝謝。但是這個解決方案把'div.title'推到'div.content'的底部,所以我用這個'$('。accordion li div.content')來修復它。before('

TITLE
');'如果你可以請編輯答案和我會標記它是正確的。非常感謝! – user1889007 2013-03-22 11:48:36

0

試試這個DEMO

$(function(){ 
$('ul.quick-list').wrap('<ul class="accordion show-for-small hide-for-medium-up">').wrap("<li>").wrap('<div class="content">'); 

$('.content').before('<div class="title">TITLE</div>'); 
});