鉴于以下结构:
<ul>
<li><a href="example.com>1</a></li>
<li><a href="example.com>2</a></li>
<li><a href="example.com>3</a>
<ul>
<li><a href="example.com">3.1</a></li>
<li><a href="example.com">3.2</a>
<ul>
<li><a href="example.com">3.2.1</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="example.com>4</a></li>
</ul>
我想自动删除或删除3
和3.2
基本上应该删除任何有孩子链接的li。 什么是最好的方法呢?
答案 0 :(得分:7)
如果您不想保留文字:
$('li:has(ul) > a').remove();
如果您想保留文字,可以使用.replaceWith
:
$('li:has(ul) > a').replaceWith(function() {
return $(this).text();
});
答案 1 :(得分:1)
即使我没有测试过,这应该可行:
$('li').filter(function(){ return $('ul', this).length ? this : ''; }).find('a:first').unwrap('<a></a>')
答案 2 :(得分:0)
$("a").click(function(e){
if( $(this).parent().children('ul').length > 0 ){
e.preventDefault(); //prevent the link from being followed
$(this).remove(); //remove the a element
}
});
答案 3 :(得分:0)
$('ul li > ul').parent().children("a").attr("href","#")
答案 4 :(得分:0)
使用jQuery,
$('li > a').each(function() {
if ($(this).siblings().length)
$(this).remove();
});