dom core,html dom,css dom,jquery 中的dom操作
前端开发中为达到某种目的,往往有很多方法:dom core,html dom,jquery; dom core/jquery主要通过函数调用的方式(getAttribute("属性名")/attr("属性名"))获取属性值, html dom一般利用属性的形式(element.属性名)获取对应属性值,形式相对简洁。此外,针对于css相关的对象,还有css dom
前端开发中的节点有三种:元素节点;文本节点和属性节点
js一般对于dom core和html dom都支持;html dom仅适用于html这类特殊的xml文档,dom core则对于任何xml文档都适用。
从性能方面考虑
1,尽量使用js原生方法
2,dom core, html dom 优先于 jquery
3,css相关的get和set操作,尽量采用css dom 如 element.style.color="#fffffff";
js原生方法性能高于jquery中的方法,因此,在可能条件下,尽量使用jquery原生方法
this.value /this.getAttribute("value") 取代$(this).val()
this.checked/this.getAttribute("checked")取代$(this).attr("checked",true)/$(this).prop("checked",true)
jquery中的dom操作
1,节点查找
元素节点查找:利用选择器
文本节点查找:使用对应元素的text()函数调用
属性节点查找:jquery使用attr("属性名"),html dom采用.属性名的方法, dom core采用getAttribute("属性名")
2,节点创建
无论哪种节点,只是使用一段html代码
$nodeName=$("html代码")即可
3,节点插入
append();appendTo()(可以用于元素移动);prepend();以上方法,新加入的元素成为原来元素的子元素
insertAfter();insertBefore();以上方法,新加入的元素成为原来元素的同辈元素
4,节点删除
remove():所有绑定的事件,数据等都会删除
detach():绑定的事件,数据被保留
empty();非删除元素,而是元素内容清空
5,节点复制
clone();复制元素,不复制绑定事件
clone(true):复制元素,同时复制原来元素上绑定的事件
6,节点替换
replaceWith(),replaceAll()二者互为逆操作
7,节点包裹
wrap();wrapAll();wrapInner();
8,属性操作(获取,设置,删除)
dom core中getAttribute,setAttribute,removeAttribute
html core对于特定属性,有.src, .checked, .seleced,.value等简洁写法
jquery中 attr("属性名"),attr("属性名",属性值),removeAttr()
9,类操作
element.attr("class");$element.addClass();$element.removeClass();$element.hasClass();
10,状态判断
element.is("selector"),如is(:visible);is(".className")等
11,获取节点html,文本和值
element.html()类似于js中的element.innerHTML
element.text()类似于js中的element.innerTEXT
element.val()类似于js中的element.value
12,样式操作
css dom :element.style.样式名=样式值
jquery中的样式操作
element.css()
element.css("background":"#fff","width":"400px")
13,位置操作
js中获取元素位置
element.offsetTop,element.offsetLeft;
这两个属性所储存的数值并不是该元素相对整个浏览器画布的绝对位置,而是相对于其最近一个样式属性为absolute或者relative的父元素位置的相对位置,也就是说这两个数值得到的是以其 父元素左上角为(0,0)点从而计算出的数值。
jquery中获取元素位置
1)获取相对于其最近一个样式属性为absolute或者relative的父元素位置的相对位置
var position=element.position();
var left=position.left;
var top=position.top;
2)获取相对于当前视窗的位置
var offset=element.offset();
var left=offset.position;
var top=offset.position;
3)获取相对于滚动条顶部和左端的位置
scrollTop(),scrollLeft();
4)获取事件发生位置
function(e){
var x=e.pageX;
var y=e.pageY;
}
dom core,html dom,css dom,jquery 中的dom操作的更多相关文章
- jQuery中的DOM操作总结
jQuery中的DOM操作 DOM是Document Object Medel的缩写,它的意思是文档对象模型,根据W3C的官方说法,DOM是一种跟浏览器,平台以及语言都没有关系的一种规范,也就是一种接 ...
- 锋利的jQuery ——jQuery中的DOM操作(三)
一.DOM的操作分类 1>DOM Core 2>HTML-DOM 3>CSS-DOM 二.jQuery中的DOM操作 DOM树 ①查找节点 1)查找元素节点 利用jQuery ...
- Jquery:jquery中的DOM操作<一>
之前两天学习了Jquery强大的选择器,今天学习了一部分Jquery对DOM的操作,下面我将把自己今天的成果分享给大家,那些菜鸟们,你们是否需要巩固之前所学? 首先需要知道,DOM操作分为3个方面:D ...
- jQuery中的DOM操作《思维导图》
首先,是关于jQuery中的DOM操作的<思维导图>,请点击这里:jQuery中的DOM操作 列表框的左右选项移动 <html> <head> <title& ...
- jQuery中的DOM操作<思维导图>
DOM是Document Object Model的缩写,意思是文档对象模型.DOM是一种与浏览器.平台.语言无关的接口.使用该接口可以轻松地访问页面中所有的标准组件.简单来说,DOM解决了Netsc ...
- JavaWeb学习笔记——jquery中的dom操作
jquery中的dom操作 废话不说:直接上例子: 1.添加节点-html页面 Append:向每个匹配的元素内部追加内容. <body> <ul id="city& ...
- jQuery 中使用 DOM 操作节点,对页面中的表格实现增、删、查、改操作
查看本章节 查看作业目录 需求说明: 在 jQuery 中使用 DOM 操作节点,对页面中的表格实现增.删.查.改操作 点击"增加"超链接时,将表格中的第一条数据添加到表格的末尾 ...
- 【Java EE 学习 33 上】【JQuery样式操作】【JQuery中的Ajax操作】【JQuery中的XML操作】
一.JQuery中样式的操作 1.给id=mover的div采用属性增加样式.one $("#b1").click(function(){ $("#mover" ...
- jquery中链式操作的this指向
jquery中链式操作是如何实现? 例如:$(obj).children().css('color','red').next().css('color','red').siblings().css(' ...
随机推荐
- OpenCV学习笔记——多种Smooth平滑处理
opencv库提供了好几种模糊平滑Smooth操作的类型作为cvSmooth的参数传入,从而达到不同的平滑效果,另外复习了一下如何复制一份图像和重新调整图像大小. 调整图像大小目前是按照一下步骤进行: ...
- POJ 3628 Bookshelf 2(01背包)
Bookshelf 2 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9488 Accepted: 4311 Descr ...
- django 1.8 日志配置
django 1.8 日志配置 以下为setings配置logging代码片段 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(_ ...
- swfit-pod使用
一.查询第三方版本号 pod search SDWebImage 二.项目添加pod 1.在终端打开项目路径 2.输入 pod init 生成Podfile 三.在Podfile输入需要的第三方 ...
- 获取checkbox复选框的值
<title>CheckBox</title> <script type = "text/javascript"> doGetVal: func ...
- Unix时间戳(Unix timestamp)转换工具
http://tool.chinaz.com/Tools/unixtime.aspx 现在的Unix时间戳(Unix timestamp)是 1440732364 Unix时间戳( ...
- [转]SQLBulkCopy使用
SQLBulkCopy,用于数据库之间大批量的数据传递.通常用于新,旧数据库之间数据的更新.即使表结构完全不同,也可以通过字段间的对应关系,顺利的将数据导过来. 首先,SQLBulkCopy需要2个连 ...
- java ReentrantReadWriteLock
// read and write lock is mutual exclusion lock //Listing 7-3. Using ReadWriteLock to Satisfy a Dict ...
- SQLServer2008:助您轻松编写T-SQL存储过程(原创)【转】
本文主要介绍 SQLServerExpress2008不用第三方工具调试T-SQL语句,经过本文的介绍,用SQLSERVER2008 Manage studio 编写.调试T-SQL存储过程都将是 ...
- 分享一个开源的流程图绘制软件--Diagram Designer
最近在写专利文件,在制作说明书附图时想到自己还只会用wps进行简单的绘制,于是想学习下,填补下这方面的短板.这两天查到了DiagramDesigner这个小工具,派上了大用场.用它写完了一个发明专利, ...