所以我有一个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并隐藏它们)
答案 0 :(得分:1)
如果脚本标记始终位于需要删除的div之前,则可以执行此操作 -
$('.right-panel > script').nextAll('div').remove();
根据您的尝试,您可以这样做 -
$('#the-form').nextAll('div').hide();
以下是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();