jquery
2015-06-09 119 views 1 likes 
1

我有一個id爲myul的UL。我需要削減少量的LI,並需要創建一個新的UL。 所以我過濾我的UL通過將LI添加到字符串變量中的新UL上jquery

var t=$('#myul li').filter(function(){ 
if(mycondition) 
{ 
return true; 
} 
}) 

所以這裏在T我一直說,從被過濾三里屯主UL

我需要選擇李複製到一個變量,它是像

var k="<div><ul id='mynewul'><ul><div>"; 

我的知識較少,我試過 $(t).appendTo($(k).find(ul));

但是什麼都沒有發生,或者當我試圖通過 $(k).find('ul li')。length查找LI的數目時,

它說0

那麼,怎樣才能做到我該在不影響主UL或只是我怎麼能賦值給一個變量作爲標記

+1

S表示桑迪普哪裏是你對HTML^h ??? –

+0

@sforsandeep - 看看我的答案。 – ShankarSangoli

回答

2

你可以用過濾的元素,然後生成像這樣的HTML:

var x = $('#myul li') 
 
    .filter(function() { 
 
    return $(this).text()[0] == 'b'; 
 
    }) 
 
    .clone() 
 
    .wrapAll('<div><ul id="mynewul">') 
 
    .parent().parent() // move up two elements 
 
    .html() 
 

 
console.log(x); // <ul id="mynewul"><li>bar</li><li>baz</li></ul>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul id="myul"> 
 
    <li>foo</li> 
 
    <li>bar</li> 
 
    <li>baz</li> 
 
    <li>qux</li> 
 
</ul>

+0

一個小問題。任何範圍的獲得mynewul UL的HTML標記使用jquery後,這個包裝沒有追加到身體 我的意思是$('#mynewul')。html()? –

+0

@sforsandeep是的,你可以通過'.html()'得到最終的HTML ...注意,如果你這樣做,過濾的元素不會被刪除。 –

+0

Waw ..謝謝..不,我不需要從父母中刪除。我只需要在newul –

1

您必須包裝在jQuery的元素,將其追加到正確的元素,然後附加過濾器li的克隆。

//Filter all the lis you need 
    var $lis = $('#myul li').filter(function(){ 
     if(mycondition) 
     { 
      return true; 
     } 
    }); 


    //Wrap and append to the page wherever you want 
    var k="<div><ul id='mynewul'></ul><div>"; 
    $(k) 
    .appendTo(document.body) 
    .find('ul') 
    .append($lis.clone()); 

由於我克隆了李的,它不會影響原來的李,這是你想要的。

演示http://plnkr.co/edit/jKplpOHRzHM9Sk1a5NA1?p=preview

相關問題