2011-03-29 31 views
2

沒有進入細節,我有以下的jQuery代碼:jQuery的包裹每個列表中的UL標籤

$("nav ul ul").each(function() { 
    var navitems = $(this).html(); 
    alert(navitems); 
}); 

我knopw的.html使用的innerHTML這樣的警報都

<li>xxxxx</li> 
<li>xxxxx</li> 

但如何可編輯的jQuery這樣的警報是一樣

<ul> 
<li>xxxxx</li> 
<li>xxxxx</li> 
</ul> 

回答

0

你的意思是這樣的:

$("nav ul ul").each(function() { 
    var navitems = "<ul>" + $(this).html() + "</ul>"; 
    alert(navitems); 
}); 
1
$("nav ul ul").each(function() { 
     var navitems = $(this).html(); 
     var tag = $(this).get(0).nodeName.toLowerCase(); 
     alert('<' + tag + '>' + navitems + '</' + tag + '>'); 
}); 
+0

我喜歡這個主意,但.attr( 「標籤」)不起作用。那麼$(this).get(0).nodeName.toLowerCase()呢? – 2011-03-29 15:03:10

+0

@Mike - 編輯。感謝您的建議。 – justkt 2011-03-29 15:07:36

+0

你可以使用var'tag = $(this).context.localName' – meo 2011-03-29 15:50:14

0

我真的不知道你到底想要什麼。但就我所見,父()選擇器可以提供幫助。

http://api.jquery.com/parent/

+2

如果「nav ul ul」有一些兄弟姐妹,它們將被包含在結果中...... – meo 2011-03-29 15:46:07

1

我會做這樣的事情:

$("nav ul ul").each(function() { 
    alert($('<div>').append($(this).clone()).remove().html()); 
}); 

它會創建一個假的div,追加選擇UL在它和刪除虛擬並返回其html內容。

這裏是一個演示:http://jsfiddle.net/meo/QmTSF/