如何在某个div之后删除div中的所有元素

时间:2014-03-20 22:03:40

标签: javascript jquery html css

所以我有一个div在底部绘制动态元素,我想隐藏这些元素,无论他们的ID是使用javaScript / jQuery。基本上我的HTML看起来像这样:

<div class="right-panel">
  <div class="info">Text</div>
  <form id="the-form">
    <input type="hidden" name="first-name" value="">
    <input type="hidden" name="last-name" value="">
    <input type="hidden" name="state" value="">
  </form>
  <script>javaScript</script>
  <div id="dynamic-id-1">Advertisement 1</div>
  <div id="dynamic-id-2">Advertisement 2</div>
</div>

我想确保&#34; dynamic-id-1&#34;和&#34; dynamic-id-2&#34; div总是被移除或隐藏,无论他们的ID是什么(他们的ID可能会有变化)。如何在不定位ID的情况下定位这些元素?

编辑 - 我尝试了这一点,但我的方法似乎有限,即使链接,我也无法使用多个div:

$('#the-form').next().hide();

(注意:不幸的是,他们没有课,有多个div,ID总是完全不同。我希望可能有新颖的方法来定位包装div的最后两个div并隐藏它们)

5 个答案:

答案 0 :(得分:1)

如果脚本标记始终位于需要删除的div之前,则可以执行此操作 -

$('.right-panel > script').nextAll('div').remove();

http://jsfiddle.net/w6d8K/1/

根据您的尝试,您可以这样做 -

$('#the-form').nextAll('div').hide();

http://jsfiddle.net/w6d8K/2/

以下是nextAll() - https://api.jquery.com/nextAll/

的文档

答案 1 :(得分:0)

最简单的方法是将类添加到动态元素中。类似的东西:

<div class="removable-element" id="dynamic-id-1">Advertisement 1</div>

然后,您可以执行以下操作:

$(".right-panel .removable-element").remove()

答案 2 :(得分:0)

如果动态生成一次只有一个div。将其添加到动态生成:

$('#the-form + div').hide();

实现相同(不是优选)的另一种方法是:

$('#the-form').next('div').remove();

答案 3 :(得分:0)

你说你不想瞄准他们的“id”,但是id中的某些特定部分会保持不变吗?

例如“dynamic-id-”?

如果是这种情况,您可以使用“喜欢选择器”来定位它们。下面的代码将定位ID以“dynamic-id”

开头的所有div
$('div[id^=dynamic-id]').each(function () {
  //do something here
});

答案 4 :(得分:0)

定位类而不是动态ID。

<div class="element-to-remove" id="dynamic-id-1" />
<div class="element-to-remove" id="dynamic-id-2" />

$('.right-panel . element-to-remove').remove();