jQuery - 删除特定子项之前的所有子元素

时间:2016-07-28 08:58:56

标签: jquery

JSFiddle: https://jsfiddle.net/9krvkfpw/

嗨,

我试图将所有子元素删除到某一点,但我不太清楚最有效的方法是什么。

以下是一些示例代码:

<div id="container">
    <div id="el1">Remove</div>
    <div id="el2">Remove</div>
    <div id="el3">Remove</div>
    <div id="el4">Remove</div>
    <script type="text/javascript">
    // Keep
    </script>
    <div id="lastEl">Keep</div>
</div>

基本上,我想要做的是删除脚本元素上方的所有元素。我无法找到第一个脚本元素,因为有时候我会想要保留它,所以它们会阻碍它。

我的想法是通过点击#lastEl并获取前一个元素来获取脚本标记。

像这样:

var script = $('#container').children('#lastEl').prev();

从这里开始,我不确定最好的方法是什么,或者这是否是最佳方式?

我可以多次执行类似script.prev().remove()的操作,但这并不总是有用,因为在脚本之前总是有不同数量的元素我开始

任何想法都会很棒!

谢谢!

3 个答案:

答案 0 :(得分:4)

准确回答您的要求:

  

基本上,我想要做的是删除脚本元素上面的所有元素

您可以执行以下操作:

$('#container script').prevAll().remove();

Fiddle

答案 1 :(得分:0)

您正在寻找

prevAll

$("#lastEl").prevAll("div").remove();

答案 2 :(得分:0)

&#13;
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="container">
    <div id="el1">Remove</div>
    <div id="el2">Remove</div>
    <div id="el3">Remove</div>
    <div id="el4">Remove</div>
    <script type="text/javascript">
    // Keep
    </script>
    <div id="lastEl">Keep</div>
</div>
&#13;
this
&#13;
&#13;
&#13;

尝试这种方法