javascript - jquery 删除兄弟元素,在 IE7 中不起作用

标签 javascript jquery internet-explorer-7

我正在尝试删除特定 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 (即匹配id3id97id7 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/

相关文章:

javascript - Reactjs:如何有效地检查表格的单元格内容是否太长

javascript - 在 Cypress 中对不同数据集运行相同的测试

JavaScript 在内容周围添加 HTML 标签

javascript - XML Ajax 请求中请求的资源上不存在 'Access-Control-Allow-Origin' header

jquery - IE7+8动画bug,背景色+CSS3圆 Angular

javascript - 谷歌图表图表区域不透明度?

javascript - 在动态生成的元素中覆盖 css

javascript - 在 IE7 中模拟 localStorage 的问题

css - IE7 清除 float 问题

javascript - jquery-ui对话框垂直居中bug