AJAX学习(二)-------DOM基础(3)

重要的DOM属性(续) 

 

1.firstChild和lastChild

第一个和最后一个孩子节点。

node.firstChild等价于node.childNodes[0],

node.lastChild等价于 node.childNodes[node.childNodes.length – 1]

2.parentNode

返回元素的父节点

3.nextSibling

返回下一个兄弟节点



写个实例:


打开程序,分别输出第一个节点,最后一个节点及第一个节点的兄弟节点的名称,但在IE及mozilla浏览器里显示却是不同的,因为IE忽略了换行,而mozilla没有,为了避免这个问题,我们可以通过修改程序来解决此问题。将代码改成如下格式:

<form name="testfm"
><input id="id1" type="text" name="testinput1" value="1" /><br
><input id="id2" type="text" name="testinput1" value="2" /><br
><input id="id3" type="text" name="testinput1" value="3" /><br
><input id="id4" type="text" name="testinput1" value="4" /><br
></form>


这样IE和Mozilla即可以显示一致了!

改变网页结构的DOM方法

createElement(tagname)
创建新的元素节点,此方法与document对象相关联。新建的元素节点并未与节点树相连。
appendChild(node)
把新建的节点插入到节点树的某个节点下,成为这个节点的子节点。
createTextNode(text)
创建文本节点
insertBefore(new_node, old_node)
把一个新元素插入到一个现有元素的前面
replaceChild(new_child, old_child)
替换一个孩子节点
removeChild(node)
删除一个孩子节点

<html>

    <head>

        <title>DOM study</title>

        <script language="javascript">

        function init(){       

            var p = document.getElementById("content");

            var newP = document.createElement("p");

            var txt = document.createTextNode("insert content");

            newP.appendChild(txt);

            p.parentNode.appendChild(newP);    //把新内容加到最后面

            /*也可以这样写:  document.getElementsByTagName("body")[0].appendChild(newP)*/

            p.parentNode.replaceChild(newP,p);      //用新内容把p内容换掉

            /* 也可以这样写:
            p.parentNode.insertBefore(newP,p);
            p.parentNode.removeChild(p);
            */

        }
        window.οnlοad=init;

    </script>

    </head>

    <body>
        <form name="testfm"
            ><input id="id1" type="text" name="testinput1" value="1" /><br
            ><input id="id2" type="text" name="testinput1" value="2" /><br
            ><input id="id3" type="text" name="testinput1" value="3" /><br
            ><input id="id4" type="text" name="testinput1" value="4" /><br
        ></form>
       
        <p id="content"> content here!</p>

    </body>

</html>

 

我们看到了dom方法有insertBefore()方法!下面自己动手写一个insertAfter方法,练练手!

 

function insertAfter(newNode,targetNode){

    var parent = targetNode.parentNode;

    if(parent.lastChild == targetNode) {

        targetNode.appendChild(newNode);

    }else

    {

         parent.insertBefore(newNode,targetNode.nextSibing);

    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值