将div添加到特定div的父级上方,并在dom中更改顺序

时间:2016-04-25 18:08:23

标签: javascript jquery

所以这可能是可能的,但是我无法想出这个...我需要将一个div注入嵌套元素的父元素并在元素父元素之前附加它...麻烦来了我无法通过查找父级中的特定实例来定位该位置。希望代码能够澄清

我需要使用嵌套div中的id

<div>
    <div></div>
    <div></div>
    <div>
        <div>
            <div id="startFromHere"></div>
        </div>
    </div>
    <div></div>
    <div></div>
</div>

在列表中的主要父母位置上方插入一个div

<div>
    <div></div>
    <div></div>
    <div id="theAppendedDiv"></div>
    <div>
        <div>
            <div id="startFromHere"></div>
        </div>
    </div>
    <div></div>
    <div></div>
</div>

我无法定位列表中的第3个元素,因为具有我需要的ID的div不会保持在第3个位置,它会改变。因此,如果它是第5项或第2项,我必须在该特定嵌套div的父项之前附加一个div。

我也无法控制html,必须通过js / jquery注入它。它最多可以达到10级,嵌套在spans / tables / div等中......没有标记父元素,我可以用来定位任何内容的唯一东西是嵌套元素ID。

1 个答案:

答案 0 :(得分:1)

您可以使用以下parent()方法。

&#13;
&#13;
$('#startFromHere').parent().parent().before('<div id="theAppendedDiv">The Appended Div<div>')
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
    <div>1</div>
    <div>2</div>
    <div>
        <div>
            <div id="startFromHere">Start From Here</div>
        </div>
    </div>
    <div>4</div>
    <div>5</div>
</div>
&#13;
&#13;
&#13;