javascript – jquery删除兄弟元素,在IE7中不起作用
作者:互联网
我试图删除特定div后的所有兄弟元素,让我们说id为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')
解决方法:
这里有三个步骤:
>找到我们点击的元素的索引号,与其父元素相关.
>遍历此父级中包含的所有div元素,从刚刚找到的那个开始
>删除找到的每个div
$(document).ready(function(){
$('#parent').children().click(function(){
var index = ($('div',$(this).parent()).index(this));
for(i=(index+1);i<$('div',$(this).parent()).length;i++){
$($('div',$(this).parent()).get(i)).hide();
}
});
});
这将适用于此HTML
<div id="parent">
<div id="c1">c1</div>
<div id="c2">c2</div>
<div id="c3">c3</div>
<div id="c4">c4</div>
<div id="c5">c5</div>
</div>
如果您在此问题上遇到任何问题,请在此处发表评论!
附:该解决方案的应用完全符合您的要求如下
function removeAfter(el){
element = $('#'+el);
var index = ($('*',element.parent()).index(element));
for(i=(index+1);i<$('*', element .parent()).length;i++){
$($('*', element.parent()).get(i)).hide();
}
};
标签:javascript,jquery,internet-explorer-7 来源: https://codeday.me/bug/20190827/1742239.html