jQuery DOM操作小结与实例


Posted in Javascript onJanuary 07, 2010

DOM操作的分类:DOM CORE(核心)、HTML-DOM和CSS-DOM
1. DOM Core
DOM Core并不专属于javascript,任何一种支持DOM的程序设计语言都可以使用它。

它的用途并非仅限于处理网页,也可以用来处理任何一种使用标记语言编写出来的文档,如XML.

Javascript中的getElementById(),getElementByTagName(),getAttribute()和setAttribute()方法,都是dom core的组成部分。

2. HTML_DOM

使用HTML_DOM来获取表单对象的方法
Document.forms
使用HTML_DOM来获取某元素的src属性的方法
Element.src
3. CSS_DOM

CSS_DOM是针对CSS的操作。在javascript中,CSS-DOM技术的主要作用是获取和设置style对象的各个属性。通过改变style对象的各种属性,可以使网页呈现出各种不同的效果。
Element.style.color = “red”;
jQuery作为javascript库,继承并发扬了javascript对DOM对象的操作的特性,使开发人员能方便的操作DOM对象。

jQuery 的DOM操作方法 元素的创建、复制、重组、修饰。下面的例子完全可用,每一行都写有注释,请复制代码运行。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head id="Head1"> 
<title></title> 
<script src="http://img.3water.com/jslib/jquery/jquery.js" type="text/javascript"></script> 
<style type="text/css"> 
.chapter 
{ 
width: 42em; 
} 
a.link 
{ 
text-decoration: none; 
} 
span.footnote 
{ 
font-style: italic; 
font-family: "Times New Roman" , Times, serif; 
display: block; /*使其变成一块一块的*/ 
margin: 1em 0; 
} 
.text-reference 
{ 
font-weight: bold; 
} 
#notes li 
{ 
margin: 1em 0; 
} 
#notes 
{ 
margin-top: 1em; 
border-top: 1px solid #00ff00; 
} 
#footer 
{ 
margin-top: 1em; 
border-top: 1px solid #dedede; /*上边线*/ 
} 
.inhabitants 
{ 
border-bottom: 1px solid #dedede; 
} 
.pulled-wrapper 
{ 
background: url(pq-top.jpg) no-repeat left top; 
position: absolute; 
width: 160px; 
right: -180px; /* 定位注释框的横向位置*/ 
padding-top: 18px; 
} 
.pulled 
{ 
background: url(pq-bottom.jpg) no-repeat left bottom; 
position: relative; 
display: block; 
width: 140px; 
padding: 0 10px 24px 10px; 
font: italic 1.4em "Times New Roman" , Times, serif; 
} 
</style> 
<script type="text/javascript"> 
//为每个p元素添加属性 
$(document).ready(function() { 
$('p').each(function(index) { 
var currentClass = $(this).attr('class'); 
$(this).attr('class', currentClass + ' inhabitants'); 
}); 
}); //动态为元素添加属性 
$(document).ready(function() { 
$('div.chapter a[href*=cnblogs]').each(function(index) { //each好似for循环,他会循环集合中所有的对象,参数一的方法是对每一个对象都执行的操作,index是对象的索引 
var $thisLink = $(this); 
$(this).attr({ 
'rel': 'subsection ', 
'id': 'blogslink-' + index, 
'title': '更多' + $thisLink.text() + '的资料在冯瑞涛的博客', 
'class': 'link' 
}); 
}); 
}); 
//插入返回到上面连接 
$(document).ready(function() { 
$('<a id="top" name="top">新年好</a>').prependTo('body'); //初始化到body 
$('div.chapter p:gt(0)').after('<a href="#top">返回到上面</a>'); 
//下行等价上面的哪行代码 gt代表从第几个元素后面的p开始 
//$('<a href="#top">返回到上面</a>').insertAfter('div.chapter p:gt(0)'); 
}); 
// 
$(document).ready(function() { 
$('<ol id="notes"></ol>').insertAfter('div.chapter'); 
$('span.footnote').each(function(index) { 
$(this) 
//为每一个footnote在前面动态添加数字连接(1,2) 
.before('<a href="#foot-note-' + (index + 1) + '" id="context-' + (index + 1) + '" class="context"><sup>' + (index + 1) + '</sup></a>') 
//将footnote插入到ol标签中(不带上面的连接,仅span),就是移动标签,带有appendTo代表将自己追加到其他元素中 
.appendTo('#notes') 
// 向指定元素内容的后面追加标签 
.append(' (<a href="#context-' + (index + 1) + '">内容</a>)') 
//将this包含在wrap的第一个参数中表示的标记中 
.wrap('<li id="foot-note-' + (index + 1) + '"></li>'); 
}); 
}); 
$(document).ready(function() { 
$('span.pull-quote').each(function(index) { 
//获得父元素p 
var $parentParagraph = $(this).parent('p'); 
//设置p标签为相对定位,否则无法对其位置进行操作 
$parentParagraph.css('position', 'relative'); 
//复制一份拷贝,span.pull-quote clone(false);代表仅复制标记本身不复制其内容 
var $clonedCopy = $(this).clone(); 
$clonedCopy 
.addClass('pulled') //添加样式,拥有下面的背景 
.find('span.drop') //找到其中的span.drop,此时对象已经是span.drop了 
.html('…') //为span.drop 设置html文档 
.end() //返回没有被改变前的那个jQuery对象状态 
.prependTo($parentParagraph) //将这个span追加到指定的元素中去 
.wrap('<div class="pulled-wrapper"></div>'); //再其本身包含在div内容中<div><span> 
var clonedText = $clonedCopy.text(); //获得文本,去掉了html 
$clonedCopy.html(clonedText); //将文本以Html的形式插入到内容中,相当于替换html内容 
}); 
}); 

</script> 
</head> 
<body> 
<form id="form1"> 
<span class="footnote">佳月</span> <span class="footnote">Terry.Feng.C</span> <span 
class="footnote">冯瑞涛</span> 
<div class="chapter"> 
<p> 
1. <a href="http://terryfeng.cnblogs.com">jQuery</a>动态为链接添加属性。</p> 
<p> 
2. <a href="http://terryfeng.cnblogs.com">CSLA.Net</a>业务层最强框架。<span class="pull-quote">CSLA注释<span class="drop">省略部分</span></span></p> 
<p> 
3. <a href="http://terryfeng.cnblogs.com">DNN</a>免费开源的CMS系统。<span class="pull-quote">DNN注释<span class="drop">省略部分</span></span></p> 
</div> 
<div id="footer"> 
冯瑞涛的博客</div> 
</form> 
</body> 
</html>
Javascript 相关文章推荐
文本加密解密
Jun 23 Javascript
当前页禁止复制粘贴截屏代码小集
Jul 24 Javascript
js 文本滚动效果的实例代码
Aug 17 Javascript
简单时间提示DEMO从0开始一直进行计时
Nov 19 Javascript
js与jquery回车提交的方法
Feb 03 Javascript
超精准的javascript验证身份证号的具体实现方法
Nov 18 Javascript
JS动态创建元素的两种方法
Apr 20 Javascript
概述如何实现一个简单的浏览器端js模块加载器
Dec 07 Javascript
JS生成一维码(条形码)功能示例
Jan 19 Javascript
vue-cli构建项目使用 less的方法
Oct 04 Javascript
中高级前端必须了解的JS中的内存管理(推荐)
Jul 04 Javascript
如何理解Vue前后端数据交互与显示
May 10 Vue.js
javascript当onmousedown、onmouseup、onclick同时应用于同一个标签节点Element
Jan 05 #Javascript
jQuery 数据缓存data(name, value)详解及实现
Jan 04 #Javascript
用AJAX返回HTML片段中的JavaScript脚本
Jan 04 #Javascript
Javascript解决常见浏览器兼容问题的12种方法
Jan 04 #Javascript
javascript 模拟点击广告
Jan 02 #Javascript
javascript 多种搜索引擎集成的页面实现代码
Jan 02 #Javascript
让firefox支持IE的一些方法的javascript扩展函数代码
Jan 02 #Javascript
You might like
php 防止单引号,双引号在接受页面转义
2008/07/10 PHP
深入file_get_contents与curl函数的详解
2013/06/25 PHP
php中怎么搜索相关联数组键值及获取之
2013/10/17 PHP
PHP使用mkdir创建多级目录的方法
2015/12/22 PHP
Windows 下安装 swoole 图文教程(php)
2017/06/05 PHP
自己整理的一个javascript日期处理函数
2010/10/16 Javascript
让浏览器非阻塞加载javascript的几种方法小结
2011/04/25 Javascript
jQuery选择器的工作原理和优化分析
2011/07/25 Javascript
用Js实现的动态增加表格示例自己写的
2013/10/21 Javascript
js字符串转成JSON
2013/11/07 Javascript
浅谈JavaScript 的执行顺序
2015/08/07 Javascript
jQuery实现向下滑出的平滑下拉菜单效果
2015/08/21 Javascript
JS 获取HTML标签内的子节点的方法
2016/09/21 Javascript
mvc 、bootstrap 结合分布式图简单实现分页
2016/10/10 Javascript
js中删除数组中的某一元素实例(无下标时)
2017/02/28 Javascript
让bootstrap的carousel支持滑动滚屏的实现代码
2017/11/27 Javascript
vue中axios解决跨域问题和拦截器的使用方法
2018/03/07 Javascript
基于JS正则表达式实现模板数据动态渲染(实现思路详解)
2020/03/07 Javascript
Node.js Domain 模块实例详解
2020/03/18 Javascript
详解javascript脚本何时会被执行
2021/02/05 Javascript
python抓取某汽车网数据解析html存入excel示例
2013/12/04 Python
常用python数据类型转换函数总结
2014/03/11 Python
python使用ctypes模块调用windowsapi获取系统版本示例
2014/04/17 Python
用python给自己做一款小说阅读器过程详解
2019/07/11 Python
python之yield和Generator深入解析
2019/09/18 Python
简单了解python filter、map、reduce的区别
2020/01/14 Python
Selenium python时间控件输入问题解决方案
2020/07/22 Python
基于logstash实现日志文件同步elasticsearch
2020/08/06 Python
python入门教程之基本算术运算符
2020/11/13 Python
数控技术专业毕业自荐书范文
2014/02/05 职场文书
《厄运打不垮的信念》教学反思
2014/04/13 职场文书
竞选副班长演讲稿
2014/04/24 职场文书
甲午大海战观后感
2015/06/02 职场文书
《彼得与狼》教学反思
2016/02/20 职场文书
2019年国庆祝福语(70句)
2019/09/19 职场文书
Sql Server 行数据的某列值想作为字段列显示的方法
2022/04/20 SQL Server