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操作** jQuery库是JavaScript的一个强大工具,它极大地简化了对DOM(Document Object Model)的操作。DOM是HTML和XML文档的结构化表示,允许我们通过编程方式访问和修改页面内容。jQuery提供了丰富的...
以下是关于jQuery DOM操作的一些关键知识点: 1. **选择器**:jQuery 的核心功能之一就是强大的选择器机制,它允许开发者通过CSS选择器、ID、类名、属性等来选取DOM元素。例如,`$("#myID")` 选择ID为"myID"的元素...
jQuery 是一个广受欢迎的 JavaScript 库,其核心理念是简化 DOM 操作,处理事件和创建动画,同时提供了统一的 API 以实现跨浏览器兼容性。jQuery 的“write less, do more”口号反映了它通过简洁的语法实现高效的...
4. **DOM操作(Manipulation)** - **添加/删除元素**:`.append()`, `.prepend()`, `.before()`, `.after()`等方法用于在现有元素前后插入新内容。 - **修改元素**:`.html()`, `.text()`, `.val()`用于设置或...
压缩包中的"第5章 基础DOM和CSS操作.pdf"很可能是教程的电子版,详细讲解了jQuery如何进行DOM操作和CSS选择。而"code2", "code3", "code1"这些文件名可能是配套的代码示例,它们可能包含了实际的jQuery代码片段,...
Jsoup HTML解析器For Java 在Java程序中使用JQuery操作DOM 模式识别的新技术 狂顶
jQuery中的DOM操作主要简化了JavaScript原生DOM操作的复杂性,提供了一套更简洁、易用的API。jQuery库使得开发者能够更容易地选取DOM元素、操作DOM结构以及处理事件。以下将详细介绍jQuery中的DOM操作核心知识点: ...
jQuery 是一个广泛使用的JavaScript库,它简化了DOM操作、AJAX请求、事件处理以及创建复杂的网页特效。jQuery的核心特性包括对JSON的支持、XML解析以及一套强大的选择器系统,使得开发者能够更加高效地选取和操作...
Ch08-jQuery操作DOM核心笔记.txtCh08-jQuery操作DOM核心笔记.txt Ch08-jQuery操作DOM核心笔记.txtCh08-jQuery操作DOM核心笔记.txt Ch08-jQuery操作DOM核心笔记.txt
jquery学习资料jQuery DOM的操作jQuery插件源码jQuery插件等资料: jQuery DOM教辅.pdf jQuery DOM源码 jQuery DOM的操作.pdf jQuery 丰富的插件.pdf jQuery 事件的处理.pdf jQuery 元素选择器参考手册(教辅) .pdf ...
尽管随着Vue.js、React、Angular等现代前端框架的兴起,jQuery在某些场景下的使用频率有所下降,但其依然是许多项目中的基础工具,尤其在处理DOM操作和动画效果时,jQuery依然表现出色。对于初学者和有经验的开发者...
jQuery选择器 jQuery操作DOM jQuery事件处理 jQuery动画基础
为了解决这个问题,开发者们创建了gQuery,一个专注于DOM操作的轻量级库,它抽离了jQuery中的核心DOM操作函数,以更小的体积提供相似的功能。 gQuery的核心理念是“小巧而实用”。在压缩并去除空格后,其大小不足4...
本文实例讲述了jQuery中DOM常见操作。分享给大家供大家参考,具体如下: DOM属性操作 属性列表 属性 版本 说明 attr() 1.0 设置或返回文档节点的属性。 removeAttr() 1.0 移除文档节点的属性。 prop() 1.6 ...
DOM操作有三类:DOM-core、HTML-DOM 、CSS-DOM 一、插入节点 我们用的最多的就是append和apendTo,其实共有8种方法。 插入节点 二、删除节点 remove() :删除节点,并删除元素节点绑定的事件。 empty() :清空节点...
3. jQuery 中DOM操作的分类: - 查找节点:使用jQuery选择器根据不同的条件查找页面中的元素节点。 - 创建节点:利用jQuery的工厂函数$(),可以根据传入的HTML字符串创建DOM对象,并将其包装为jQuery对象返回。例如...
5. **DOM操作**: jQuery还提供了修改元素属性的方法,如`.attr()`用于获取或设置属性值,`.addClass()`, `.removeClass()`, `.toggleClass()`用于管理元素的类名。此外,`.html()`, `.text()`, `.val()`分别用于获取...
在本篇关于jQuery中DOM操作和事件处理的文章中,我们将学习如何利用jQuery实现一个下拉框选项的动态转移功能。下拉框(select元素)作为网页中常见的表单控件之一,经常需要根据用户交互改变其选项。jQuery提供了一...
接下来,jQuery是一个广泛使用的JavaScript库,它简化了DOM操作,提供了丰富的选择器、事件处理、动画效果等功能。在“植物大战僵尸”中,我们可以利用jQuery轻松选取游戏界面中的元素,如通过$("#plant")选取植物...
三个简单实用的用于DOM操作的jQuery方法。 text() //设置或返回所选元素的文本内容 html() //设置或返回所选元素的内容(包括HTML标记) val() //设置或返回表单字段的值 1、jQuery获得元素 jQuery text() 方法和...