三、JQuery中的DOM操作


1、DOM简介
    DOM是文档对象模型,它是一种标准,与浏览器、平台、语言无关,通过这个接口可以轻松的访问DOM树的各个节点。
    不同的DOM语言,可以用来解析不同的DOM树。如:javascript可以访问html-dom、jdom可以访问xml-dom 等等。

2、DOM操作的分类
    1)DOM Core(核心DOM):它不专属与任何语言,它是一组标准的接口,提供了比如:getElementById()、getElementsByTagName()、
        getAttribute()、setAttribute()等方法,通过它可以访问DOM。
    2)HTML DOM :要访问html_dom可以使用javascript语言,它提供了访问html_dom的方法,如:document.forms、element.src 等等,
        使用它比使用DOM Core的接口更简便,但它只能用于解析html。
    3)CSS DOM :针对css操作,javascript提供了如下接口,element.style.color="red"
   
3、JQuery中的DOM操作
    1)查找节点
        (1)查找元素,可以使用JQuery选择器快速的找到目标元素
            var $li = $('ul li:eq(1)');    // ul 的第二个 li 元素
            var li_txt = $li.text();    // 获取 li 的内容
        (2)查找属性节点,找到目标元素后,使用attr()访问指定的属性或为指定属性赋值
            $('p').attr('title','橘子');            // 设置p的title属性值
            var p_title = $('p').attr('title'); // 获取p的title属性值
    2)创建节点
        var $ul = $('ul');
        var $li1 = $('<li title="香蕉">香蕉</li>');    // 创建JQuery元素,可以使用$()工厂函数
        var $li2 = $('<li title="柚子">柚子</li>');    // 这种方法会根据传入的html构造一个dom对象,然后再包装成JQuery的dom对象。
    3)插入节点
        (1)$('p').append('<b>橘子</b>');             // 向每个匹配的元素内部追加内容。<p>你最喜欢的水果是?<b>橘子</b></p>
        (2)$('<b>橘子</b>').appendTo($('p'));         // 与append()相反。<p>你最喜欢的水果是?<b>橘子</b></p>
        (3)$('p').prepend('<b>请问</b>');            // 向每个匹配的元素内部前置内容。<p><b>请问</b>你最喜欢的水果是?</p>
        (4)$('<b>请问</b>').prependTo($('p'));        // 与prepend()相反。<p><b>请问</b>你最喜欢的水果是?</p>
        (5)$('p').after('<b>苹果</b>');              // 向每个匹配的元素之后插入内容 。<p>你最喜欢的水果是?</p><b>苹果</b>
        (6)$('<b>苹果</b>').insertAfter($('p'));        // 与after()相反。<p>你最喜欢的水果是?</p><b>苹果</b>
        (7)$('p').before('<b>嗨!</b>');                // 向每个匹配的元素之前插入内容。<b>嗨!</b><p>你最喜欢的水果是?</p>
        (8)$('<b>嗨!</b>').insertBefore($('p'));    // 与before()相反。<b>嗨!</b><p>你最喜欢的水果是?</p>
        (9)移动节点,例子:
            var $two_li = $('ul li:eq(1)');
            var $three_li = $('ul li:eq(2)');
            $two_li.insertAfter($three_li);
    4)删除节点
        (1)remove() 删除节点以及后代节点   
            a、删除匹配的节点,返回被删除的节点。
                var $remove_obj = $('ul li:eq(1)').remove();
                $('ul').append($remove_obj);    // 将被删除的节点追加到ul
            b、结果与上面相同,将删除的节点追加到ul.
                $('ul li:eq(1)').remove().prependTo($('ul'));
            c、给remove()添加参数,过滤要删除的元素。
                var $ul = $('ul');
                $ul.append('<li>其他</li>');
                $('ul li').remove('li[title!=菠萝]');
        (2)empty() 清空后代节点
            $('ul li:eq(1)').empty();
    5)复制节点
        $('ul li').click(function() {
            $(this).clone().appendTo('ul');     // 只复制节点,不复制行为
            $(this).clone(true).appendTo('ul'); // 即复制节点,也复制行为
        });
    6)替换节点
        $('p').replaceWith('<strong>我最不喜欢的水果!</strong>');    // 将所有匹配的元素替换成指定的元素
        $('<strong>我最不喜欢的水果!</strong>').replaceAll('p');        // 与replaceWith相反(),效果相同
        注意:被替换后新元素含任何事件,需要重新绑定。
    7)包裹节点
        $('strong').wrap('<div></div>');    // 给每个匹配的strong都包裹一个<div> 如:<div><strong>喜欢?</strong></div>
        $('li').wrapAll('<ul></ul>');        // 给所有匹配的li包裹一个<ul> 如:<ul><li>苹果</li><li>鸭梨</li></ul>
        $('strong').wrapInner('<i></i>');    // 给每个匹配的strong的内容都包裹一个<b> 如:<strong><i>喜欢?</i></strong>
    8)属性操作
        $('p').attr("title");    // 获取或设置属性,也可以一次设置多个属性,如:$('p').attr({title:'title', content:'content'});
        $('p').removeAttr("title");    // 删除属性
    9)样式操作
        (1) 获取和设置样式
            $('p').attr('class');
            $('p').attr('class', 'font_style');
        (2) 追加样式
            $('p').addClass('append');
        (3) 移除样式
            $('p').removeClass('abc a b'); // 多个样式用空格分割
            $('p').removeClass();          // 删除所有class
        (4) 切换样式
            // 可以用来执行一组交替动作
            $('#btn').toggle(function() {
                $('p').addClass('display');
            }, function() {
                $('p').removeClass('display');    
            });
            // 可以用来切换样式,当指定样式存在时则删除,不存在则添加
            $('#btn').click(function() {
                $('p').toggleClass('display');
            });
        (5) 判断是否含有某个样式
            $('p').hasClass('display');
            $('p').is('.display');     // $('p').is('.' + class);
    10)设置和获取html、文本和值
        (1) 获取和设置元素内部的html,只对html有效
            $('p').html();
            $('p').html('<strong>你确定?</strong>');
        (2) 获取和设置元素内部的文本,对html和xml都有效
            $('p').text();
            $('p').text('确定');
        (3) 获取和设置元素的值
            i) 文本框例子:
                $('#address').focus(function() {
                    var val = $(this).val();
                    if (val == this.defaultValue) {        // this.defaultValue是当前文本框默认值
                        $(this).val("");
                    }
                });
                $('#address').blur(function() {
                    var val = $(this).val();
                    if (val == "") {
                        $(this).val(this.defaultValue); // this.defaultValue是当前文本框默认值
                    }
                });
            ii) 下拉列表、多选框、单选按钮、多选按钮,例子:
                $('#single').val('选择1号'); // $('#single').val('one'); 指定text或者value都可以
                $('#multiple').val(['选择2号','选择4号']);
                $(':checkbox').val(['check2','check3']);
                $(':radio').val(['radio2']);
    11)遍历节点
        (1) children() 获取子元素,不包含后代元素
        (2) next() 用于获取后面紧邻的同辈元素
        (3) prev() 用于获取前面紧邻的同辈元素
        (4) siblings() 用于获取同辈元素
        (5) closest() 获取最近匹配的元素
        (6) find() 找出正在处理的元素的后代元素
        (7) filter() 筛选出与指定表达式匹配的元素集合,用于缩小匹配的范围,多个表达式用逗号分隔
    12)css-dom操作
        (1) css() 用来获取和设置元素的样式,使用方式与attr()一样
        (2) height()、width() 获取和设置元素的高度或宽度
        (3) offset() 获取元素在当前视窗的相对偏移
            var $ul = $('ul').offset();
            console.info($ul.left);
            console.info($ul.top);
        (4) position() 获取元素在父元素的相对偏移
            var $ul = $('ul').position();
            console.info($ul.left);
            console.info($ul.top);
        (5) scrollTop()、scrollLeft() 获取或设置当前元素的滚动条距滚动条顶端和左端的距离

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。在编写C程序时,需要注意变量的声明和定义、指针的使用、内存的分配与释放等问题。C语言常用的数据结构包括: 1. 数组:一种存储同类型数据的结构,可以进行索引访问和修改。 2. 链表:一种存储不同类型数据的结构,每个节点包含数据和指向下一个节点的指针。 3. 栈:一种后进先出(LIFO)的数据结构,可以通过压入(push)和弹出(pop)操作进行数据的存储和取出。 4. 队列:一种先进先出(FIFO)的数据结构,可以通过入队(enqueue)和出队(dequeue)操作进行数据的存储和取出。 5. 树:一种存储具有父子关系的数据结构,可以通过序遍历、前序遍历和后序遍历等方式进行数据的访问和修改。 6. 图:一种存储具有节点和边关系的数据结构,可以通过广度优先搜索、深度优先搜索等方式进行数据的访问和修改。 这些数据结构在C语言都有相应的实现方式,可以应用于各种不同的场景。C语言的各种数据结构都有其优缺点,下面列举一些常见的数据结构的优缺点: 数组: 优点:访问和修改元素的速度非常快,适用于需要频繁读取和修改数据的场合。 缺点:数组的长度是固定的,不适合存储大小不固定的动态数据,另外数组在内存是连续分配的,当数组较大时可能会导致内存碎片化。 链表: 优点:可以方便地插入和删除元素,适用于需要频繁插入和删除数据的场合。 缺点:访问和修改元素的速度相对较慢,因为需要遍历链表找到指定的节点。 栈: 优点:后进先出(LIFO)的特性使得栈在处理递归和括号匹配等问题时非常方便。 缺点:栈的空间有限,当数据量较大时可能会导致栈溢出。 队列: 优点:先进先出(FIFO)的特性使得
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值