2011-07-21 7 views
3

jqueryに問題があります。多くのテストの後、私のための簡単な解決策はありません。jqueryは閉じたタグを追加します

私のCMSは、私にこのコード

<ul> 
    <li>text</li> 
    <li>text</li> 
    <li class="last">text</li> 
    <li>text</li> 
    <li>text</li> 
    <li class="last">text</li> 
    <li>text</li> 
    <li>text</li> 
    <li class="last">text</li> 
</ul> 
私は私が試したこのコード

<ul> 
    <li>text</li> 
    <li>text</li> 
    <li class="last">text</li> 
</ul><ul> 
    <li>text</li> 
    <li>text</li> 
    <li class="last">text</li> 
</ul><ul> 
    <li>text</li> 
    <li>text</li> 
    <li class="last">text</li> 
</ul> 

を得るために、各クラス=最後のこのコード

</ul><ul> 

後に追加したい

を返しますこのコードのjquery

$('.last').after('</ul><ul>') 

このテキストを追加することはできません。私はあなたが私に私の問題の解決策を与えることができ

<ul></ul> 

なく

</ul><ul> 

を得ます。おかげで事前に;)

+0

を多分この記事が役立ちます:言って新しいHTML http://stackoverflow.com/questions/1644668/jquery-split-long-ul-list-in-smalle r-lists – shanabus

答えて

7

DOMノードを分割することはできません、新しい<ul></ul>を追加し、それに関連するサブノードを移動する必要があります。

補足として、リストを全く分割せず、代わりに.lastを区切り記号(空白、これは私があなたが達成しようとしていると仮定しているもの)のように飾ると考えましたか?

+0

お返事ありがとうございます。別のセパレータで試してみますが、私の最初のアイデアはCMSのコードに触れないことです。 – Hugo

+0

次に、セパレータのアイデアは、実行時にDOMを破壊的に操作するよりも優れているはずです。あなたはあなたの手に壊れやすい(アップグレードはそれを壊す可能性があります)、非分解性(あなたのサイトを破壊するjsをオフにする)あなたの手を混乱させるでしょう。 – Blindy

+0

はい。あなたは正しい、より良くなるだろう。私は出力を書き直すためにCMSで最初に仕事をしようとします。 – Hugo

0

私は今、それをコーディングする時間がありませんが、私はあなたが「切り離し」を使用できると思います:

http://api.jquery.com/detach/

はLI要素を外し、その後、新しいリストに追加し、に進んでそのようにあなたのリストを構築してください。

0

(私はこのULは、ブルートフォースの種類

var container = $("div"); 
var ul = $("<ul/>"); 
var lis = $("ul > li", container); 
container.empty(); 
lis.each(function(){ 

    ul.append(this); 
    if($(this).hasClass("last")){ 
    container.append(ul); 
    ul = $("<ul/>"); 
    } 
}); 
container.append(ul); 
0

のdivを言って、いくつかの容器の中にあるが、このしようと仮定しています、これを試してください:あなたが完了したら

var newUL = [$('<ul></ul>')];  

$('ul.className li').each(function(i, el) { 
    newUL[newUL.length - 1].append($(el)); 
    if($(el).hasClass('last')) { 
     newUL.push($('<ul></ul>')); 
    } 
}); 

を、あなたが得ることができます

$('#ulParent').empty.append(newUL.join('')); 
+0

ありがとう、しかし私は最初に私のCMS(drupal)からの出力を変更しようとします。可能でない場合、私はあなたの解決策を保ちます。 – Hugo

関連する問題