• JavaScript DOM 编程艺术


    最近把JavaScript DOM 编程艺术这本书看完了,觉得这本书很好 深入浅出地展示了渐进增强、平稳退化、结构和样式分离等编程思想,我对书中重要的知识进行了梳理总结。

    一.网页

    二.JavaScript

    三.DOM

    四.重要知识点

    1.innerHTML (html属性,只有web文档支持)

    (1)读取

    <div id="testdiv"><p>This is <em>my</em>content</p></div>

    var testdiv = document.getElementById("testdiv");

    testdiv.innerHTML 为 <p>This is <em>my</em>content</p>

    (2)写入

    <div id="testdiv"></div>

    var testdiv = document.getElementById("testdiv");

    testdiv.innerHTML = "<p>This is <em>my</em>content</p>";

    2.appendChild

    <div id="testdiv"></div>

    var testdiv = document.getElementById("testdiv");

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

    para.innerHTML = "This is <em>my</em>content";

    testdiv.appendChild(para);

    3.createTextNode

    <div id="testdiv"></div>

    var testdiv = document.getElementById("testdiv");

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

    testdiv.appendChild(para);

    var txt= document.createTextNode("Hello world");

    para.appendChild(txt);

    4. insertBefore

    <div id="testdiv">你好</div>

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

    var txt = document.createTextNode("Hello world");

    para.appendChild(txt);

    var testdiv = document.getElementById("testdiv");

    testdiv.parentNode.insertBefore(para, testdiv);

    结果:

    <p>Hello world</p>

    <div id="testdiv">你好</div>

    5.DOM中没有提供insertAfter函数,但是可以自己实现

    <div id="testdiv">你好</div>

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

    var txt = document.createTextNode("Hello world");

    para.appendChild(txt);

     

    var testdiv = document.getElementById("testdiv");

    var parent = testdiv.parentNode;

    if (parent.lastChild == testdiv) {

        parent.appendChild(para);

    } else {

        parent.insertBefore(para, testdiv.nextSibling);

    }

    结果:

    <div id="testdiv">你好</div>

    <p>Hello world</p>

    6.html里的样式,在DOM中用驼峰命名法

    获取

    <p id="example" style="color:#999999;font-family:'Arial',sans-serif"></p>

    var para = document.getElementById("example");          

    alert(para.style.fontFamily);

    设置

    para.style.fontFamily=”normal”;

    7.设置类名

    <p id="example" style="color:#999999;font-family:'Arial',sans-serif"></p>

    var para = document.getElementById("example");

    para.className = "exampleClass";

    获取类名

    document.getElementsByClassName("exampleClass")[0].style.fontFamily;

    8.定时器setTimeout

    <p id="message">Whee!</p>

    window.onload = function () {

       var elem= document.getElementById("message");

       elem.style.position = "absolute";

       elem.style.left = "50px";

       elem.style.top = "100px";

       movement = setTimeout("moveMessage()", 5000); //5秒后执行moveMessage()   

    }

    function moveMessage()

    {

        var elem = document.getElementById("message");

        elem.style.position = "absolute";

        elem.style.left = "200px";

        elem.style.top = "100px";

    }

     取消定时器

    ClearTimeout(movement); 

    9.javaScript实现动画效果

    <p id="message">Whee!</p>

    <p id="message2">Whoa!</p>

    window.onload = function () {

                var elem = document.getElementById("message");

                elem.style.position = "absolute";

                elem.style.left = "50px";

                elem.style.top = "100px";           

                moveElement("message", 125, 60, 30);

     

                var elem2 = document.getElementById("message2");

                elem2.style.position = "absolute";

                elem2.style.left = "50px";

                elem2.style.top = "50px";

                moveElement("message2", 125, 125, 30);

            }

     

            function moveElement(elementID,final_x,final_y,interval) {

                var elem = document.getElementById(elementID);

                var xpos = parseInt(elem.style.left);

                var ypos = parseInt(elem.style.top);

     

                if (xpos == final_x && ypos == final_y) {

                    return true;

                }

                if (xpos < final_x) {

                    xpos++;

                }

                if (xpos > final_x) {

                    xpos--;

                }

                if (ypos < final_y) {

                    ypos++;

                }

                if (ypos > final_y) {

                    ypos--;

                }

                elem.style.left = xpos + "px";

                elem.style.top = ypos + "px";

                var repeat = "moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")";

                movement = setTimeout(repeat, interval);

            }

    10.juery

    (1)

    var items = document.getElementsByTagName("li");

                for (var i = 0; i < items.length; i++) {

                    alert(typeof items[i]);

                }

    等价于

    $('li').each(function (i) {

                    alert(typeof this);

                });

    (2)

    <input id="name"/>

    赋值

    $("#name").attr("value", "张三"); 

    取值

    $("#name").attr("value")  ;

    (3)把div追加到body里

    $('<div id="example">hello</div>').appendTo(document.body);

    (4)初始化函数

    $(function ()

                {

     

                });

    (5)a标签单击事件

    <a href="#">hello</a>

    $('a').click(function (event) {

                    window.open("HtmlPage1.html");

                });

     本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    逆元(费马小定理求法)
    CodeForces
    lower_bound and upper_bound
    HDU 4825 Xor Sum
    1030: [JSOI2007]文本生成器
    1070: [SCOI2007]修车
    agc 027 B
    P2664 树上游戏
    CF 314 E. Sereja and Squares
    4237: 稻草人
  • 原文地址:https://www.cnblogs.com/xiao-wo-niu/p/10688901.html
Copyright © 2020-2023  润新知