js怎样添加、移除、移动、复制、创建和查找节点?

JavaScript07

js怎样添加、移除、移动、复制、创建和查找节点?,第1张

添加节点append;移除节点removeChild;移动节点:var sdds=document.getElementById;创建节点createTextNode();查找节点:document.getElementsByTagName。

其他方法:

创建新节点

createDocumentFragment() //创建一个DOM片段

createElement() //创建一个具体的元素

createTextNode() //创建一个文本节点

添加、移除、替换、插入

appendChild() //添加

removeChild() //移除

replaceChild() //替换

insertBefore() //插入

查找

getElementsByTagName() //通过标签名

getElementsByName() //通过元素的Name属性的值

getElementById() //通过元素Id,唯一性

实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制。

当编辑区没有获得焦点或光标处range为空时,点击加粗按钮,在光标处添加一个strong标签,之后把光标移动到strong标签内,现在在移动光标的过程出现了问题。

var frag = range.createContextualFragment(“<strong></strong>”)

var lastNode = frag.lastChild

range.insertNode(frag)

range.setStartAfter(lastNode)

?

这里添加的strong标签是空,如果strong里加入一个 就可以获得lastChild,但现在它的lastChild是null,这样在setStartAfter时就找不到参照的lastNode对象了。

这里该如何创建空strong标签,或如何获取strong下参照节点。收起

点击加粗按钮后,在编辑区添加一个strong标签,把光标移动到strong内,继续输入时直接到strong内

如果strong内部有节点,比如文本或标签,那么frag.lastChild就会获得最后一个标签或文本节点,假设创建的是这样的标签

<strong>nbsp</strong>

那执行insertNode后插入的html将是

光标<strong>nbsp</strong>

继续输入的话,文字会出现在strong标签前而不是内部,也就不是加粗的,所以要调整光标位置,执行setStartAfter(lastNode)

也就是把光标设置到lastNode也就是之后,html变成

<strong>nbsp光标</strong>