繁体   English   中英

删除元素不适用于jQuery

[英]Removing elements just won't work with jQuery

我有一个自动生成的布局,看起来像是由jQuery.PrettyTextDiff-plugin创建的布局:

<head>
    <script type="text/jaascript" src="the jquery library"></script>
</head>
<body>
    <div class="diff">
        <span>
            <br/>
        </span>
        Continuing layout...
    </div>
    <script type="text/javascript" src="diff_match_patch.js"></script>
    <script type="text/javascript" src="jquery.pretty-text-diff.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $('.diff span:first-child').remove(); // As of my last try
        });
    </script>
</body>

我希望在运行时删除“ diff”布局内的第一个跨度,但无法正常工作。 经过深入研究,我尝试了SO的几种解决方案。

$('.diff').closest('span').remove();
$('.diff span').first().remove(); //recommended solution by the jQuery Foundation - yet it won't work
$('.diff span').remove();
$('.diff').find('span:gt(0)').remove();

似乎没有什么可以消除跨度。 我应该如何删除它?

您是否包装了jQuery代码,例如:

    $(document).ready(function () {
        $('.diff span').remove();
    });

这应该工作。

更新:要仅删除第一个孩子,请执行以下操作:

$('.diff span:first-child').remove();

小提琴

像这样尝试...

$('.diff').each(function(){
   $(this).find('span').eq(0).remove();
});

您提供的语句应该起作用:

$(".diff").remove("span");

小提琴

我相信您正在谈论的代码是动态生成的。 您需要等待渲染,然后再删除span标签。

您也可以在插件本身中解决问题,或要求库的作者为您解决问题。

试试这个$(".diff").find("span").html("");

请点击这里

在某个地方,我看到了一条快速评论,暗示我可以使用CSS来解决此问题-因此我做到了。 它是一种魅力。

.diff span {
    display: none;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM