2011-03-29 88 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/