zoukankan      html  css  js  c++  java
  • jQuery 创建 DOM节点

    1DOM创建节点及节点属性

    通过JavaScript可以很方便的获取DOM节点,从而进行一系列的DOM操作。但实际上一般开发者都习惯性的先定义好HTML结构,但这样就非常不灵活了。

    试想下这样的情况:如果我们通过AJAX获取到数据之后然后才能确定结构的话,这种情况就需要动态的处理节点了

    本文向大家介绍一下如何使用JavaScript创建div节点元素,主要包括创建div节点元素的属性和创建div节点元素的样式两大部分内容,相信本文介绍一定会让你有所收获。

    先介绍下需要用到的浏览器提供的一些原生的方法(这里不处理低版本的IE兼容问题)

    创建流程比较简单,大体如下:

    1. 创建节点(常见的:元素、属性和文本)
    2. 添加节点的一些属性
    3. 加入到文档中

    流程中涉及的一点方法:

    • 创建元素:document.createElement
    • 设置属性:setAttribute
    • 添加文本:innerHTML
    • 加入文档:appendChild

    如右边代码所示,写一个最简单的元素创建,我们会发现几个问题:

    1. 每一个元素节点都必须单独创建
    2. 节点是属性需要单独设置,而且设置的接口不是很统一
    3. 添加到指定的元素位置不灵活
    4. 最后还有一个最重要的:浏览器兼容问题处理

    针对这一系列的DOM操作的问题,jQuery给出了一套非常完美的接口方法,我们之后就开始深入学习

    2jQuery节点创建与属性的处理

    上一节介绍了通过JavaScript原生接口创建节点,在处理上是非常复杂与繁琐的。我们可以通过使用jQuery来简化了这个过程

    创建元素节点

    可以有几种方式,后面会慢慢接触。常见的就是直接把这个节点的结构给通过HTML标记字符串描述出来,通过$()函数处理,$("html结构")

    $("<div></div>")

    创建为本节点

    与创建元素节点类似,可以直接把文本内容一并描述

    $("<div>我是文本节点</div>")

    创建为属性节点

    与创建元素节点同样的方式

    $("<div id='test' class='aaron'>我是文本节点</div>")

    我们通过jQuery把上一届的代码改造一下,如右边代码所示

    一条一句就搞定了,跟写HTML结构方式是一样的

    $("<div class='right'><div class='aaron'>动态创建DIV元素节点</div></div>")

    这就是jQuery创建节点的方式,让我们保留HTML的结构书写方式,非常的简单、方便和灵活

     

    实例

     1 <script type="text/javascript">
     2  //<![CDATA[
     3   $(function(){
     4     var $li_1 = $("<li></li>");    //  创建第一个<li>元素
     5     var $li_2 = $("<li></li>");    //  创建第二个<li>元素
     6 
     7 
     8      var $parent = $("ul");        // 获取<ul>节点。<li>的父节点
     9 
    10      $parent.append($li_1);        // 添加到<ul>节点中,使之能在网页中显示
    11      $parent.append($li_2);        // 可以采取链式写法:$parent.append($li_1).append($li_2);
    12   });
    13   //]]>
    14   </script>
     1  <script type="text/javascript">
     2  //<![CDATA[
     3   $(function(){
     4     var $li_1 = $("<li>香蕉</li>");    //  创建一个<li>元素,包括元素节点和文本节点
     5                                                         //“香蕉”就是创建的文本节点。
     6     var $li_2 = $("<li>雪梨</li>");    //  创建一个<li>元素,包括元素节点和文本节点
     7                                                         //“雪梨”就是创建的文本节点。
     8 
     9 
    10      var $parent = $("ul");        // 获取<ul>节点。<li>的父节点
    11 
    12     $("ul").append($li_1);        // 添加到<ul>节点中,使之能在网页中显示 或者 $parent.append($li_1);
    13     $("ul").append($li_2);        // 添加到<ul>节点中,使之能在网页中显示 或者 $parent.append($li_2);
    14     
    15 
    16     
    17     
    18 
    19 
    20   });
    21   //]]>
    22   </script>
  • 相关阅读:
    leetcode -- Maximum Depth of Binary Tree
    leetcode -- Binary Tree Level Order Traversal
    leetcode -- Binary Tree Inorder Traversal
    leetcode -- Subsets II
    Egret入门学习日记 --- 第十七篇(书中 7.4~8.2节 内容)
    Egret入门学习日记 --- 问题汇总
    Egret入门学习日记 --- 第六篇(书中 3.6~3.9节 内容)
    Egret入门学习日记 --- 第十六篇(书中 6.10~7.3节 内容)
    Egret入门学习日记 --- 第十五篇(书中 6.1~6.9节 内容)
    Egret入门学习日记 --- 第十四篇(书中 5.4~5.6节 内容)
  • 原文地址:https://www.cnblogs.com/yuejiaming/p/6481653.html
Copyright © 2011-2022 走看看