2015-04-23 20 views
3

我有下面這段代碼工作正常。但是,在此,當點擊第一個元素[節點1]時,它被複制到目標div但沒有父'UL'。當我直接點擊子節點時也是如此。我的意思是,如果我點擊節點1.1,節點1.2等,那麼這些應該被捕獲在單個「UL」元素內。即,如何爲jquery中的所有子節點添加單個父元素

這下面應該改爲

`<li><span>Node 1.1</span></li><li><span>Node 1.2</span></li>` 

(這就是我現在越來越) 作爲

<UL><li><span>Node 1.1</span></li><li><span>Node 1.2</span></li></UL> 

同樣應該發生,如果選擇「節點1」也。

有什麼想法?請幫忙。

http://jsfiddle.net/fjaLsnLh/7/請在此小提琴鏈接上進行修改。

+2

爲什麼不'ul'添加到目標股利和再追加,像這樣:http://jsfiddle.net/fjaLsnLh/9/ –

+0

@ShaunakD,我遵循你的想法,並使我的代碼工作,謝謝! – User123

+0

很高興爲您效勞。 –

回答

1

使用jQuery的wrapAll

$('li').wrapAll('<ul></ul>'); 

的jsfiddle:http://jsfiddle.net/fjaLsnLh/12/

+0

嗨,你的信息是好的,但是,它不能按預期工作,請你改變'jsfiddle'中的代碼嗎? – User123

+0

以何種方式無法按預期工作?你期望它做什麼,它有點做什麼? –

+0

實際上,當用戶單擊每個複選框時,我正在創建這個條件,每當用戶單擊複選框時,它應該添加'ul'來包裝所有'li'。我應該在代碼片段上粘貼上面的代碼?我很困惑.. – User123

0

您可以使用jQuery方法wrapAll()來實現這一目標。

語法:

$(selector).wrapAll(wrappingElement); 
$('li').wrapAll('<ul></ul>'); 

如:

$(document).ready(function() { 
 
    $("button").click(function() { 
 
    $("li").wrapAll("<ul></ul>"); 
 
    }); 
 
});
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> 
 

 
<body> 
 

 
    <UL> 
 
    <li><span>Node 1.1</span> 
 
    </li> 
 
    <li><span>Node 1.2</span> 
 
    </li> 
 
    </UL> 
 
    <button>Wrap a div element around all p elements</button> 
 

 
</body>

+0

你能否讓我在JSfiddle鏈接中做這項工作,我複製? – User123

相關問題