zoukankan      html  css  js  c++  java
  • jQuery-2.DOM---创建节点及节点属性

    DOM创建节点及节点属性

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

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

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

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

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

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

    流程中涉及的一点方法:

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

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

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

     <script type="text/javascript">
            var body = document.querySelector('body');

            document.addEventListener('click',function(){
                
                //创建2个div元素
                var rightdiv = document.createElement('div')
                var rightaaron = document.createElement("div");

                //给2个div设置不同的属性
                rightdiv.setAttribute('class', 'right')
                rightaaron.className = 'aaron'
                rightaaron.innerHTML = "动态创建DIV元素节点";

                //2个div合并成包含关系
                rightdiv.appendChild(rightaaron)
                   
                   //绘制到页面body
                   body.appendChild(rightdiv)

            },false)
        </script>

    jQuery节点创建与属性的处理

    上一节介绍了通过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>")

     var $body = $('body');
        $body.on('click', function() {
            //通过jQuery生成div元素节点
            var div = $("<div class='right'><div class='aaron'>动态创建DIV元素节点</div></div>")
            $body.append(div)
        })

  • 相关阅读:
    第二阶段站立会议第十天
    第二阶段站立会议第九天
    第二阶段站立会议第八天
    第二阶段站立会议第七天
    第二阶段站立会议第六天
    第二阶段站立会议第五天
    第二阶段站立会议第四天
    第二冲刺阶段个人进度10
    第二冲刺阶段个人进度09
    第二冲刺阶段个人进度08
  • 原文地址:https://www.cnblogs.com/oybb/p/7776915.html
Copyright © 2011-2022 走看看