如果li有孩子,则jQuery杀死链接

问题描述

| 给出以下结构:
<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都应删除。 最好的方法是什么?     

解决方法

如果您不想保留文字:
$(\'li:has(ul) > a\').remove();
演示 如果要保留文本,可以使用
.replaceWith
$(\'li:has(ul) > a\').replaceWith(function() {
    return $(this).text();
});
演示     ,即使我没有测试,也应该可以:
$(\'li\').filter(function(){ return $(\'ul\',this).length ? this : \'\'; }).find(\'a:first\').unwrap(\'<a></a>\')
    ,
$(\"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
    }
});
    ,使用jQuery,
$(\'li > a\').each(function() {
  if ($(this).siblings().length)
    $(this).remove();
});
    ,
$(\'ul li > ul\').parent().children(\"a\").attr(\"href\",\"#\")
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...