我有這樣的事情:將li鏈接和文本節點封裝在li標籤中(並且不包括ul標籤)?
<li>
<a></a>
"(1)"
<ul></ul>
</li>
我希望它結束了這樣的事情:
<li>
<span>
<a></a>
"(1)"
</span>
<ul></ul>
</li>
如何實現這一目標?
我有這樣的事情:將li鏈接和文本節點封裝在li標籤中(並且不包括ul標籤)?
<li>
<a></a>
"(1)"
<ul></ul>
</li>
我希望它結束了這樣的事情:
<li>
<span>
<a></a>
"(1)"
</span>
<ul></ul>
</li>
如何實現這一目標?
試試這個
$('li a').before('<span>');
$('li ul').before('</span>');
希望這有助於!
你測試過了嗎?我不認爲這會奏效。 –
這將根據需要添加標籤.... – Narendra
我誠實地不相信它會。如果你能向我展示一個演示,如你所期望的那樣工作,而不是我所期望的那樣,那麼我會扭轉我的倒票。 –
$ul = $('li ul');
$('li ul').remove();
$('li').wrapInner('<span>');
$('li').append($ul);
作品。見http://jsfiddle.net/Lhg32/(感謝您的評論!)
http://jsfiddle.net/Lhg32/ – undefined
所以它的工作原理!感謝jsfiddle :) –
var content = $('li').clone(true),
ul = content.children('ul').remove();
$('li').html($('<span />').append(content.contents()).append(ul));
對不起,我忘了提及我在同一頁面有很多li。我如何才能將其應用於當前的父級? – alexchenco
您需要添加一個類或ID,或者定位一個具有類或ID的父元素,或者使用元素的索引等。真的,但是從您發佈的HTML中無法回答這個問題。 – adeneo
http://jsfiddle.net/lamarant/XjQek/
HTML
<ul>
<li>This is Item 1
<ul>
<li>Item 1 Sub 1</li>
<li>Item 1 Sub 2</li>
<li>Item 1 Sub 3</li>
</ul>
</li>
<li>This is Item 2
<ul>
<li>Item 2 Sub 1</li>
<li>Item 2 Sub 2</li>
<li>Item 2 Sub 3</li>
<li>Item 2 Sub 4</li>
</ul>
</li>
</ul>
的Javascript
$('ul li').not('ul ul li').each(function() {
var $clone = $(this).clone(true);
var $origUL = $('ul', $(this)).first();
var $newUL = $('<ul></ul>');
$newUL.html($origUL.html());
$clone.children('ul').remove();
$(this).html('').append($('<span>' + $clone.html().trim() + '</span>')).append($newUL);
});
結果
<ul>
<li><span>This is Item 1</span>
<ul>
<li>Item 1 Sub 1</li>
<li>Item 1 Sub 2</li>
<li>Item 1 Sub 3</li>
</ul>
</li>
<li><span>This is Item 2</span>
<ul>
<li>Item 2 Sub 1</li>
<li>Item 2 Sub 2</li>
<li>Item 2 Sub 3</li>
<li>Item 2 Sub 4</li>
</ul>
</li>
</ul>
,你卡住了? –