javascript如何在div的后面添加一个其他的元素

javascript如何在div的后面添加一个其他的元素,第1张

//1、首先获取div的父节点

//2、创建一个新节点

//3、将新节点添加到div节点后面

//具体 *** 作如下:

var divs = document.getElementsByTagName("DIV")//获取页面中所有div

for(var i=0i<divs.lengthi++) {

var div = divs[i]//获取第i个div

var divParent = div.parentNode//获取该div的父节点

var newNode = document.createTextNode("文本节点")//创建文本节点

var next = div.nextSibling//获取div的下一个兄弟节点

//判断兄弟节点是否存在

if(next) {

//存在则将新节点插入到div的下一个兄弟节点之前,即div之后

divParent.insertBefore(newNode,next)

} else {

//不存在则直接添加到最后,appendChild默认添加到divParent的最后

divParent.appendChild(newNode)

}

}

//以下是一些常用js *** 作

var textNode = document.createTextNode("xxx")//创建文本节点

var elementNode = document.createElement("p")//创建元素节点(p)

var body = document.getElementsByTagName("body")[0]//获取body节点

body.appendChild(elementNode)//元素节点添加到body节点下,添加在末尾

elementNode.appendChild(textNode)//将文件节点添加到元素节点下

//获取要删除的节点,elementNode.length-1 表示最后一个指定节点(这里表示最后一个p节点)

var delElementNode = elementNode.item(elementNode.length-1)

body.removeChild(delElementNode);//移除指定节点

body.insertBefore(newNode, oldNode)//在body中的oldNode前插入newNode节点

body.replaceChild(newNode, oldNode)//将body中的oldNode替换为newNode节点

//创建一个新的属性

var style = document.createAttribute("style")

//为节点添加新属性

option.attributes.setNamedItem(style)

//设置新属性的值

option.setAttribute("style","color:red")

insertRow()函数可以带参数,形式如下:这个函数将新行添加到index的那一行前,比如insertRow(0),是将新行添加到第一行之前,默认的insertRow()函数相当于insertRow(-1),将新行添加到表的最后。

<scriptlanguage="JavaScript">

vart=document.getElementById("test");

t.innerHTML="<tr><td>数据</td></tr>"

//或者

vart=document.getElementById("test");

vartr=document.createElement("tr");

vartd=doucment.createElement("td");

td.innerHTML="数据";

tr.appendChild(td);

t.appendChild(tr);

</script>

扩展资料:

给table添加一行

1、$("#addTable").click(function(){;

2、vartr="<tr>"+;

3、"<td>11</td>"+;

4、"<td>22</td>"+;

5、"<td>33</td>"+;

6、"<td>44</td>"+;

7、"<td>55</td>"+;

8、"</tr>"

9、$(".layui-table").append(tr);

appendChild定义

appendChild(newChild:

Node)

:

Node

Appends

a

node

to

the

childNodes

array

for

the

node.

Supported:

IE

5.0+,

Mozilla

1.0+,

Netscape

6.0+,

Safari

1.0+,

Opera

7.0+

添加一个节点到指定的节点的子节点数组中,读起来好象有点拗口,简单地说就是将元素添加到指定的节点中

appendChild用法

target.appendChild(newChild)

newChild作为target的子节点插入最后的一子节点之后

appendChild例子

var

newElement

=

document.Document.createElement('label')

newElement.Element.setAttribute('value',

'Username:')

var

usernameText

=

document.Document.getElementById('username')

usernameText.appendChild(newElement)

insertBefore定义

The

insertBefore()

method

inserts

a

new

child

node

before

an

existing

child

node.

insertBefore()

方法的作用是:在现有的子节点前插入一个新的子节点

insertBefore用法

target.insertBefore(newChild,existingChild)

newChild作为target的子节点插入到existingChild节点之前

existingChild为可选项参数,当为null时其效果与appendChild一样

insertBefore例子

var

oTest

=

document.getElementById("test")

var

newNode

=

document.createElement("p")

newNode.innerHTML

=

"This

is

a

test"

oTest.insertBefore(newNode,oTest.childNodes[0])

好了那么有insertBefore的应该也有insertAfter吧?

好那我们来用Aptana编写一个例子吧,但Aptana的智能提示告诉我其实没有insertAfter这个方法

那么就自己定义一个罗:)

insertAfter定义

function

insertAfter(newEl,

targetEl)

{

var

parentEl

=

targetEl.parentNode

if(parentEl.lastChild

==

targetEl)

{

parentEl.appendChild(newEl)

}else

{

parentEl.insertBefore(newEl,targetEl.nextSibling)

}

}

insertAfter用法与例子

var

txtName

=

document.getElementById("txtName")

var

htmlSpan

=

document.createElement("span")

htmlSpan.innerHTML

=

"This

is

a

test"

insertAfter(htmlSpan,txtName)

将htmlSpan

作为txtName

的兄弟节点插入到txtName

节点之后

总结:

1、appendChild和insertBefore是做对节点的方法来使用的,而insertAfter只是自定义的一个函数

2、insertBefore相对于appendChild来说,比较灵活可以将新的节点插入到目标节点子节点数组中的任一位置。

3、使用appendChild和insertBefore来插入新的节点前提是,其兄弟节点必须有共同的父节点


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11267902.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存