`

三、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() 获取或设置当前元素的滚动条距滚动条顶端和左端的距离

分享到:
评论

相关推荐

    JQuery DoM和ajax 操作

    **jQuery DOM操作** jQuery库是JavaScript的一个强大工具,它极大地简化了对DOM(Document Object Model)的操作。DOM是HTML和XML文档的结构化表示,允许我们通过编程方式访问和修改页面内容。jQuery提供了丰富的...

    jQuery DOM节点操作源码

    以下是关于jQuery DOM操作的一些关键知识点: 1. **选择器**:jQuery 的核心功能之一就是强大的选择器机制,它允许开发者通过CSS选择器、ID、类名、属性等来选取DOM元素。例如,`$("#myID")` 选择ID为"myID"的元素...

    Jquery+dom+easyUI教程

    jQuery 是一个广受欢迎的 JavaScript 库,其核心理念是简化 DOM 操作,处理事件和创建动画,同时提供了统一的 API 以实现跨浏览器兼容性。jQuery 的“write less, do more”口号反映了它通过简洁的语法实现高效的...

    jQuery操作DOM解析

    4. **DOM操作(Manipulation)** - **添加/删除元素**:`.append()`, `.prepend()`, `.before()`, `.after()`等方法用于在现有元素前后插入新内容。 - **修改元素**:`.html()`, `.text()`, `.val()`用于设置或...

    jQuery基础DOM和CSS操作源码

    压缩包中的"第5章 基础DOM和CSS操作.pdf"很可能是教程的电子版,详细讲解了jQuery如何进行DOM操作和CSS选择。而"code2", "code3", "code1"这些文件名可能是配套的代码示例,它们可能包含了实际的jQuery代码片段,...

    Jsoup HTML解析器For Java 在Java程序中使用JQuery操作DOM

    Jsoup HTML解析器For Java 在Java程序中使用JQuery操作DOM 模式识别的新技术 狂顶

    jQuery中的DOM操作.ppt

    jQuery中的DOM操作主要简化了JavaScript原生DOM操作的复杂性,提供了一套更简洁、易用的API。jQuery库使得开发者能够更容易地选取DOM元素、操作DOM结构以及处理事件。以下将详细介绍jQuery中的DOM操作核心知识点: ...

    jquery dom对象 详细介绍1

    jQuery 是一个广泛使用的JavaScript库,它简化了DOM操作、AJAX请求、事件处理以及创建复杂的网页特效。jQuery的核心特性包括对JSON的支持、XML解析以及一套强大的选择器系统,使得开发者能够更加高效地选取和操作...

    Ch08-jQuery操作DOM核心笔记.txt

    Ch08-jQuery操作DOM核心笔记.txtCh08-jQuery操作DOM核心笔记.txt Ch08-jQuery操作DOM核心笔记.txtCh08-jQuery操作DOM核心笔记.txt Ch08-jQuery操作DOM核心笔记.txt

    jquery学习资料jQuery DOM的操作jQuery插件源码jQuery插件等资料.zip

    jquery学习资料jQuery DOM的操作jQuery插件源码jQuery插件等资料: jQuery DOM教辅.pdf jQuery DOM源码 jQuery DOM的操作.pdf jQuery 丰富的插件.pdf jQuery 事件的处理.pdf jQuery 元素选择器参考手册(教辅) .pdf ...

    jQuery一个非常流行的操作Dom的JavaScript库

    尽管随着Vue.js、React、Angular等现代前端框架的兴起,jQuery在某些场景下的使用频率有所下降,但其依然是许多项目中的基础工具,尤其在处理DOM操作和动画效果时,jQuery依然表现出色。对于初学者和有经验的开发者...

    jQuery 选择器 操作DOM 事件处理 动画基础

    jQuery选择器 jQuery操作DOM jQuery事件处理 jQuery动画基础

    gQuery : jQuery DOM 操作部分

    为了解决这个问题,开发者们创建了gQuery,一个专注于DOM操作的轻量级库,它抽离了jQuery中的核心DOM操作函数,以更小的体积提供相似的功能。 gQuery的核心理念是“小巧而实用”。在压缩并去除空格后,其大小不足4...

    jQuery中DOM常见操作实例小结

    本文实例讲述了jQuery中DOM常见操作。分享给大家供大家参考,具体如下: DOM属性操作 属性列表 属性 版本 说明 attr() 1.0 设置或返回文档节点的属性。 removeAttr() 1.0 移除文档节点的属性。 prop() 1.6 ...

    jQuery常见面试题之DOM操作详析

    DOM操作有三类:DOM-core、HTML-DOM 、CSS-DOM 一、插入节点 我们用的最多的就是append和apendTo,其实共有8种方法。 插入节点 二、删除节点 remove() :删除节点,并删除元素节点绑定的事件。 empty() :清空节点...

    jQuery 中DOM 操作详解

    3. jQuery 中DOM操作的分类: - 查找节点:使用jQuery选择器根据不同的条件查找页面中的元素节点。 - 创建节点:利用jQuery的工厂函数$(),可以根据传入的HTML字符串创建DOM对象,并将其包装为jQuery对象返回。例如...

    《jQuery权威指南》学习笔记之第3章 jQuery操作DOM

    5. **DOM操作**: jQuery还提供了修改元素属性的方法,如`.attr()`用于获取或设置属性值,`.addClass()`, `.removeClass()`, `.toggleClass()`用于管理元素的类名。此外,`.html()`, `.text()`, `.val()`分别用于获取...

    jquery中dom操作和事件的实例学习 下拉框应用

    在本篇关于jQuery中DOM操作和事件处理的文章中,我们将学习如何利用jQuery实现一个下拉框选项的动态转移功能。下拉框(select元素)作为网页中常见的表单控件之一,经常需要根据用户交互改变其选项。jQuery提供了一...

    利用面向对象管理者模式思想结合jquery操作DOM树制作的植物大战僵尸

    接下来,jQuery是一个广泛使用的JavaScript库,它简化了DOM操作,提供了丰富的选择器、事件处理、动画效果等功能。在“植物大战僵尸”中,我们可以利用jQuery轻松选取游戏界面中的元素,如通过$("#plant")选取植物...

    jQuery DOM 1.pptx

    三个简单实用的用于DOM操作的jQuery方法。 text() //设置或返回所选元素的文本内容 html() //设置或返回所选元素的内容(包括HTML标记) val() //设置或返回表单字段的值 1、jQuery获得元素 jQuery text() 方法和...

Global site tag (gtag.js) - Google Analytics