删除元素不适用于jQuery

时间:2014-09-03 09:46:29

标签: javascript 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'-layout中的第一个span,但是我无法让它工作。经过深入研究后,我在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();

似乎没有消除跨度。我该怎么做才能删除它?

5 个答案:

答案 0 :(得分:0)

您是否将jQuery代码包装成:

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

这应该有效。

更新: 仅删除第一个孩子:

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

Fiddle

答案 1 :(得分:0)

试试这个......

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

答案 2 :(得分:0)

您提供的陈述应该有效:

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

fiddle

我相信您所谈论的代码是动态生成的。您需要等到呈现并删除后面的span标记。

您还可以修复插件本身的问题,或者请图书馆的作者为您解决问题。

答案 3 :(得分:0)

尝试使用此$(".diff").find("span").html("");

点击here

答案 4 :(得分:0)

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

.diff span {
    display: none;
}