admin管理员组文章数量:1203178
Is there any predefined method in javascript that can append div after a div? For example:
<div class="uploader">
<div class="file-metas">
<div class="file-name">status<span class="file-size">1kb</span></div>
<p class="state state-success">Success</p>
</div>
</div>
Now I want to insert another div with class name 'remove' after 'uploader' div.
Is there any predefined method in javascript that can append div after a div? For example:
<div class="uploader">
<div class="file-metas">
<div class="file-name">status<span class="file-size">1kb</span></div>
<p class="state state-success">Success</p>
</div>
</div>
Now I want to insert another div with class name 'remove' after 'uploader' div.
Share Improve this question edited Jun 5, 2013 at 9:44 Derek Henderson 9,7064 gold badges45 silver badges71 bronze badges asked Jun 5, 2013 at 9:36 Anjil panchalAnjil panchal 511 gold badge1 silver badge2 bronze badges 5- 1 Maybe you should indent your HTML code so we can read it. :-) – fero Commented Jun 5, 2013 at 9:38
- you can use jquery to make your task easier – rajansoft1 Commented Jun 5, 2013 at 9:40
- @rajansoft1: I m not using jquery, so i want only javascript code – Anjil panchal Commented Jun 5, 2013 at 9:41
- So like this one? stackoverflow.com/questions/7690582/… – Vegar Commented Jun 5, 2013 at 9:46
- @Anjil panchal: any reason you are not using jquery? just wanted to know why you are not willing to use jquery. – rajansoft1 Commented Jun 5, 2013 at 10:11
5 Answers
Reset to default 7Vanilla JS: Supported with all the browsers:
Visualization of position names
<!-- beforebegin -->
<p>
<!-- afterbegin -->
foo
<!-- beforeend -->
</p>
<!-- afterend -->
code
// <div id="one">one</div>
var d1 = document.getElementById('one');
d1.insertAdjacentHTML('afterend', '<div id="two">two</div>');
// At this point, the new structure is:
// <div id="one">one</div><div id="two">two</div>
More info here
Yeah it is possible using pure javascript
You can use insertBefore method to do so by accessing parent node of target element.
document.getElementsByClassName("uploader").parentNode
Take a look
Try this Demo
var node = document.querySelector(".uploader"),
ele = document.createElement("div");
ele.className = "remove";
ele.innerHTML = "some text";
node.parentNode.insertBefore(ele, node.nextSibling);
function appendAfter(divToAppend, siblingBefore) {
if(siblingBefore.nextSibling) {
siblingBefore.parentNode.insertBefore(divToAppend, siblingBefore.nextSibling);
} else {
siblingBefore.parentNode.appendChild(divToAppend);
}
}
The following example demonstrates what you are trying to achieve using plain JavaScript:
<html>
<head>
<script>
function addNewDiv() {
var newDiv = document.createElement('div');
var label = document.createTextNode(" - new div - ");
var elements = document.getElementsByClassName('uploader');
var uploaderDiv = elements[0];
newDiv.appendChild(label);
elements[0].insertBefore(newDiv, uploaderDiv.children[0]);
}
</script>
</head>
<body>
<div class="uploader">
<div class="file-metas">
<div class="file-name">status<span class="file-size">1kb</span>
</div>
<p class="state state-success">Success</p>
</div>
</div>
<input type="button" onClick="addNewDiv()" value="Add new Div" />
</body>
</html>
本文标签: Append a div after another div with javascriptStack Overflow
版权声明:本文标题:Append a div after another div with javascript - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1738665793a2105693.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论