zoukankan      html  css  js  c++  java
  • JavaScript和jQuery的DOM操作

    1 , 创建元素节点
    传统的javascript方法,创建元素节点
    var a  = document.createElement("p");
    jQuery中创建节点的方法是:
    $('< p>< /p>');
    和createElement()一样,创建出来的新元素节点不会被自动添加到文档里。
    如果想把它添加到文档里,可以使用 jQuery中的 append()或者insertAfter()方法或者 before ()等方法。
    比如:
    var a = $('< p>< /p>');
    $('body').append(a);//添加到body元素的最后.

    2,创建文本节点:
    传统的javascript方法,创建文本节点
    var b = document.createTextNode("my demo");
    通常创建文本节点和创建元素节点配合使用.
    比如:
    var mes = document.createTextNode("hello world");
    var container = document.createElement("p");
    container.appendChild(mes);
    document.body.appendChild(container);

    而在jQuery中创建节点就不必那么麻烦了:
    $('< p>hello world< /p>');
    和createElement()一样,创建出来的新元素节点不会被自动添加到文档里。
    如果想把它添加到文档里,可以使用 jQuery中的 append()或者insertAfter()方法或者 before ()等方法。
    比如:
    var a = $('< p>hello world< /p>');
    $('body').append(a);//添加到body元素的最后.

    3,复制节点
    传统的javascript方法,复制节点:
    比如:
    var mes = document.createTextNode("hello world");
    var container = document.createElement("p");
    container.appendChild(mes);
    document.body.appendChild(container);
    var newpara = container.cloneNode(true);//true和false的区别
    document.body.appendChild(newpara );
    注意:
    true : 是< p>aaaa< /p> 克隆。
    false: 只克隆 < p>< /p> ,里面的文本不克隆。
    可以用 firebug 看看。

    在jQuery中复制节点:
    var a = $('< p>hello world< /p>');
    $('body').append(a);
    var clone_a = a.clone();
    $('body').append(clone_a);

    和createElement()一样,复制出来的新元素节点不会被自动添加到文档里。
    如果想把它添加到文档里,可以使用 jQuery中的 append()或者insertAfter()方法或者 before ()等方法。
    另外还有一个注意:如果克隆后,id一样,不要忘记用.attr("id","new_id")来改变新的节点的ID。

    4, 插入节点
    传统的javascript方法,插入节点:
    比如:
    appendChild() :
    给元素追加一个子节点, 新的节点 插入到 最后。
    var container = document.createElement("p");
    document.body.appendChild(container);

    insertBefore()  :
    顾名思义,就是把一个新的节点插入到目标节点的前面。
    Element.insertBefore( newNode  ,  targerNode );

    在jQuery中插入节点比javascript自带的多了很多,
    比如:
    .append()
    .appendTo()
    .prepend()
    .prependTo()
    .after()
    .insertAfter()
    .before()
    .insertBefore()
    所以对dom操作的简化也是jquery的亮点之一。

    5, 删除节点
    传统的javascript方法,删除节点:
    比如:
    var b = document.getElementById("b");
    var c = b.parentNode;
    c.removeChild(b);

    在jQuery中的删除节点:
    比如:
    $('#test2').remove();

    6, 替换节点
    传统的javascript方法,替换节点:
    比如:
    Element.repalceChild( newNode , oldNode );
    oldNode必须是Element的一个子节点。

    在jQuery中的替换节点:
    比如:
    $("< p>替换 test1 ! < /p>").replaceAll("#test1");

    7 ,设置属性,获取属性
    传统的javascript方法,设置属性,获取属性:
    比如:
    setAttribute();//设置
    var a  = document.createElement(“p”);
    a.setAttribute("title","my demo");
    不管以前有没有title属性,以后的值是 my demo。

    getAttribute();//获取
    var a =document.getElementById("cssrain");
    var b = a.getAttribute("title");
    获取的时候,如果属性不存在,则返回空,

    在jQuery中的设置属性,获取属性:
    比如:
    $("#test1").attr({ "class" : "test" , "title" : "TestDemo!" });
    $("#test1").attr("class");

    8, 查找节点
    查找节点对jQuery来说 简直是小菜一碟.
    jQuery最引入关注的就是查找节点,也就是通常所说的选择器.
    比如:
    $('#id')
    $('.class')
    $('tag')
    $('tag.class')
    $('#id tag')
    $('tag#id')
    $('#id:visible')
    $('#id .class')
    $('.class .class')

  • 相关阅读:
    Mysql常用语句
    关于nginx的一个错误操作记录
    windows下安装ElasticSearch
    在IIS托管服务中设置Rewrite重定向到webapi接口
    asp.net IHttpHandler浅析
    asp.net IHttpModule浅析
    vscode 创建.net core项目初体验
    批量联表更新
    mysql 关于数据库和数据表的基本操作
    mysql Navicat客户端
  • 原文地址:https://www.cnblogs.com/axyz/p/1862666.html
Copyright © 2011-2022 走看看