我正在尝试删除特定 div 之后的所有同级元素,比如说 id = id8 的 div 标签。
<form>
<div id="id5">something ...<div>
<div id="id8">something ...<div>
<div id="id3">something ...<div>
<div id="id97">something ...<div>
<div id="id7">something ...<div>
...
<div id="idn">some text ...<div>
</form>
为此,我在 jquery 中使用了以下代码。
$("#id8 ~ div").remove();
它在 Firefox 中工作正常,但在 IE7 中不起作用。
是否有另一种方法来实现这一目标,使用 jquery 并仅提供我要开始删除元素的元素的标签 ID? 谢谢
谢谢大家的帮助 我最终根据接受的答案得到了这个解决方案
function removeAfter(el,tag){
element = $('#'+el);
var aElements = $(tag,element.parent());
var index = (aElements.index(element));
for(i=(index+1);i<aElements.length;i++) {
$('#'+$(aElements.get(i)).attr('id')).remove();
}
}
打电话
removeAfter('id8', 'div')
最佳答案
两件事!
1) 关闭你的
<form>
<div id="id5">something ...</div>
<div id="id8">something ...</div>
<div id="id3">something ...</div>
<div id="id97">something ...</div>
<div id="id7">something ...</div>
<div id="idn">some text ...</div>
</form>
2) ~ 运算符只匹配匹配元素之后的 sibling (即匹配id3、id97、id7 和 idn,但不是 id5)。要匹配每个 sibling ,包括 id5,您可以这样做:
$("#id8").siblings("div").remove();
那应该只剩下 id8。我在 Firefox 3.5.5 和 IE7.0something 中对此进行了测试。希望对您有所帮助!
关于javascript - jquery 删除兄弟元素,在 IE7 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1803449/