• javascript基础。dom操作


    属性/方法

    类型/返回类型

    说明

    nodeName

    String

    节点的名字<div> <span>

    nodeValue

    String

    节点的值 div的内容

    nodeType

    Number

    节点的类型常量值之一

    firstChild

    Node

    指向childNodes列表的第一个节点

    lastChild

    Node

    指向childNodes列表中的最后一个节点

    childNodes

    NodeList

    所有子节点的列表

    previousSibling

    Node

    指向前一个兄弟节点,如果这个节点是第一个,则返回为null

    removeChild(node)

    Node

    childNodes中删除node

    replaceChild(newnode,oldnode)

    Node

    childNodes中的oldnode替换成newnode

    insertBefore(newnode,refnode)

    Node

    childNodes中的refnode之前插入newnode

    3.4:创建和操作节点

    1)      创建新节点

    createDocumentFragment()

    创建文档碎片节点

    createElement(tagname) 用的比较多

    创建标签名tagname的元素

    createTextNode(text)

    创建包含文本text的文本节点

    appendChild()

    添加子元素

    操作节点

    removeChild()

    删除一个节点

    replaceChild()

    替换一个节点的内容

    insertBefor()

    在一个节点之前插入新节点

    如:有以下HTML页面

    <html><head><title>createElementd() Example</title> </head>

       <body> </body>

    </html>

    如:现在想使用DOM来添加下列代码到此页面上

    <p>Hellow World!</p>

    则:

    var Op = document.createElement(“p”);

    var oText = document.createTextNode(“Hellow World”);

    Op.appendChild(oText);

    document.body.appendChild(Op);

    注意:在这里对于DOM的操作必须在页面完全载入之后才能进行。

    动态创建节点

    function CreateP(){
    var Op = document.createElement("p");
    var oText = document.createTextNode("Hellow World");
                    Op.appendChild(oText);
                    document.body.appendChild(Op); }
    <input type="button" value="createElement" onclick="CreateP()"/>

    <html> <head> <title> DOM Simple </title> </head> <body>

     <p> Hellow</p>
     <p> how are you?</p>

    <p> ok</p>

    </body></html>

    Eg:

    function removeElement()

    var oP = document.body.getElementsByTagName("p")[0];//获取文档p标签集合的第一个

    //document.body.removeChild(oP);

    oP.parentNode.removeChild(oP);

    }

    function ReplaceElement(){

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

       var oText = document.createTextNode("aaaaaaaaaaaaaaaa");

       oNewP.appendChild(oText);//添加到段落

        var oOldP= document.body.getElementsByTagName("p")[0];//得到第一个段落的引用

        oOldP.parentNode.replaceChild(oNewP,oOldP);}//oNewP替换调oOldP

    function insertElement() {

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

    var oText = document.createTextNode("aaaaaaaaaaaaaaaa");

    oNewP.appendChild(oText);

    var oOldP= document.body.getElementsByTagName("p")[0];

    document.body.insertBefore(oNewP,oOldP);}

    利用javascript操作domcss元素

    CSS样式特性

    Javascript样式属性

    color

    style.color

    font

    style.font

    background-color

    style.backgroundColor

    font-family

    style.fontFamily

    Eg

    <input type = "button" value="click me"

    onmouseover="this.style.backgroundColor='black';this.style.color='white'"//背景变黑色文字变白色

    onmouseout="this.style.backgroundColor='white';this.style.color='black'" style="background-Color:white;color:black"/>

    注意:可以用style.cssText来得到一个对象上所应用的css字符串

    案例一

    <a href="javascript:void(0)" onmouseover="showTip(event)"

    onmouseout = "hiddenTip(event)">click me</a>

    style="background-color:Yellow;position:absolute;visibility:hidden;padding:5px;">

     <span>这是我自己写的提示<br />这是我自己写的提示</span></div>

    position:absolute; 决定定位,根据页面的进行定位

    <script type="text/javascript">

        function showTip(oEvent)

        {

        //alert(document.documentElement.scrollTop);

           var oDiv = document.getElementById("divTip1");//得到div的引用

           oDiv.style.visibility ="visible"; //显示一个提示

           oDiv.style.left = document.documentElement.scrollLeft+ oEvent.clientX+5;

    //这个div的坐标改为 x的坐标+5

    oEvent是鼠标的,如

    scrollLeft() 方法返回或设置匹配元素的滚动条的水平位置。滚动条的水平位置指的是从其左侧滚动过的像素数。当滚动条位于最左侧时,位置是 0。

    scrollTop 滚动条的一个定位

           oDiv.style.top = document.documentElement.scrollTop+oEvent.clientY+5;

    //这个div的坐标改为y的坐标+5

        }

        function hiddenTip(oEvent)

        { var oDiv = document.getElementById("divTip1");

            oDiv.style.visibility = "hidden";  }

        </script>

     

     

     

     

    案例2:折叠

    <div id="divTitle" style="200px;height:20px;background-color:blue;cursor:pointer" onclick="toggle('divContent')"></div>

    <div id="divContent" style="200px;height:50px;background-color:red;display:block">Content</div>

    function toggle(div) {

     var mydiv = document.getElementById(div);

     if (mydiv) {

    mydiv.style.display=mydiv.style.display == "none"?"block":"none"; }//显示和隐藏互相切换

    }      动态注入CSS

    function addhupoocss(cssfile){

    var head = document.getElementsByTagName('HEAD').item(0);

    var style = document.createElement('link');

    style.href = cssfile;

    style.rel = 'stylesheet'

    style.type = 'text/css';

    head.appendChild(style);

    }

    得到head元素。创建link这个元素,给这个link元素附属性(css文件),然后,添加到head标签里面

    动态注入js

    function addjs(jsfile){

    var head = document.getElementsByTagName('HEAD').item(0);

    var script = document.createElement('script');

    script.src = jsfile;

    script.type = 'text/javascript';

    head.appendChild(script);

    }

    表格里面,选中一行,使改行变色

    <input ID="chkID" type="checkbox" onclick="setRowColor(this)" /> 这个check控件
    <body onload="init()">
    function init(){
          var oTable = document.getElementById("GridView1");GridView1是表格id
      if (oTable){//如果得到了这个对象
          var oTrs = oTable.getElementsByTagName("tr");//得到所有的tr标签
               for(var i=1;i<oTrs.length;i++) {//从表格第二行(标题是第一行)
                   oTrs[i].onmouseover=function(){
                           this.style.backgroundColor='yellow'; }//this指当前tr本身
                        oTrs[i].onmouseout=function(){
                           this.style.backgroundColor='white'; } } } }
  • 相关阅读:
    spring boot基础知识
    使用PrintDocument定制打印格式
    vue刷新页面出现闪烁
    递归限制级数
    导出Excel的2个方法
    通过反射获取对象名称和值
    asp.net mvc 使用bootstrap的模态框插件modal
    记录用到的mssql的几个方法
    记录几个字符串转html的帮助类,以防忘记
    git 命令
  • 原文地址:https://www.cnblogs.com/aqbyygyyga/p/2221959.html
Copyright © 2020-2023  润新知