jquery删除dom

您所在的位置:网站首页 船用雷达操作规程最新 jquery删除dom

jquery删除dom

2024-07-18 00:12:27| 来源: 网络整理| 查看: 265

目录

1 概述

2 选取DOM元素

2.1 dom和jQuery对象转换

2.2 dom和jQuery的入口函数的区别

2.2.1 jQuery的入口加载函数

2.2.2 dom的入口加载函数

3 DOM操作

3.1 获取父元素

3.2 获取下一个同级元素

3.3 尾部追加DOM元素

3.4 头部插入DOM元素

3.5 生成DOM元素

3.6 删除DOM元素

3.7 清空子元素

3.8 检查是否有子元素

3.9 克隆元素

4 事件的监听

4.1 事件的触发

5 各种方法

5.1 attr方法

5.1.1 jQuery使用attr方法,读写网页元素的属性

5.1.2 DOM提供getAttribute和setAttribute方法读写元素属性

5.1.3 DOM还允许直接读取属性值,写法要简洁许多

5.2 addClass方法

5.2.1 jQuery的addClass方法,用于为DOM元素添加一个class

5.2.2 DOM元素本身有一个可读写的className属性,可以用来操作class

5.2.3 HTML 5还提供一个classList对象,功能更强大(IE 9不支持)

5.3 CSS

5.3.1 jQuery的css方法,用来设置网页元素的样式

5.3.2 DOM元素有一个style属性,可以直接操作

5.4 数据储存

5.4.1 jQuery对象可以储存数据

5.4.2 HTML 5有一个dataset对象

5.5 Ajax

5.5.1 jQuery的ajax方法,用于异步操作

5.6 动画

1 概述

jQuery是最流行的JavaScript工具库。据统计,目前全世界57.3%的网站使用它。也就是说,10个网站里面,有6个使用jQuery。如果只考察使用工具库的网站,这个比例就会上升到惊人的91.7%。

jQuery如此受欢迎,以至于有被滥用的趋势。许多开发者不管什么样的项目,都一股脑使用jQuery。但是,jQuery本质只是一个中间层,提供一套统一易用的DOM操作接口,消除浏览器之间的差异。多了这一层中间层,操作的性能和效率多多少少会打一些折扣。

2006年,jQuery诞生的时候,主要是为了解决IE6与标准的不兼容问题。如今的情况已经发生了很大的变化。IE的市场份额不断下降,以ECMAScript为基础的JavaScript标准语法,正得到越来越广泛的支持,不同浏览器对标准的支持越来越好、越来越趋同。开发者直接使用JavaScript标准语法,就能同时在各大浏览器运行,不再需要通过jQuery获取兼容性。

另一方面,jQuery臃肿的体积也让人头痛不已。jQuery 2.0的原始大小为235KB,优化后为81KB;如果是支持IE6、7、8的jQuery 1.8.3,原始大小为261KB,优化后为91KB。即使有CDN,浏览器加载这样大小的脚本,也会产生不小的开销。

所以,对于一些不需要支持老式浏览器的小型项目来说,不使用jQuery,直接使用DOM原生接口,可能是更好的选择。开发者有必要了解,jQuery的一些常用操作所对应的DOM写法。而且,理解jQuery背后的原理,会帮助你更好地使用jQuery。要知道有一种极端的说法是,如果你不理解一样东西,就不要使用它。

2 选取DOM元素

jQuery的核心是通过各种选择器,选中DOM元素,可以用querySelectorAll方法模拟这个功能。

var $ = document.querySelectorAll.bind(document);

这里需要注意的是,querySelectorAll方法返回的是NodeList对象,它很像数组(有数字索引和length属性),但不是数组,不能使用pop、push等数组特有方法。如果有需要,可以考虑将Nodelist对象转为数组。

myList = Array.prototype.slice.call(myNodeList); 2.1 dom和jQuery对象转换 //dom转化为jQuery,只需把dom放进jQuery的对象就可以了$() $(document);//就是一个jQuery对象 //jQuery转化为dom对象,只需把这个维数组里面的元素取出来即可 $(document)[0]或者$(document).get(0) 2.2 dom和jQuery的入口函数的区别 2.2.1 jQuery的入口加载函数 $(function(){ //注意这个入口加载函数会只会等待页面文档加载完成,而不会等待外部资源或图片加载完成 });

注意这个入口加载函数会只会等待页面文档加载完成,而不会等待外部资源或图片加载完成 

2.2.2 dom的入口加载函数 window.onload=function(){ //这个函数会等待一切资源加载完成在执行,比如外部脚本或图片 }

这个函数会等待一切资源加载完成在执行,比如外部脚本或图片

3 DOM操作

DOM本身就具有很丰富的操作方法,可以取代jQuery提供的操作方法。

3.1 获取父元素 // jQuery写法 $("#elementID").parent() // DOM写法 document.getElementById("elementID").parentNode 3.2 获取下一个同级元素 // jQuery写法 $("#elementID").next() // DOM写法 document.getElementById("elementID").nextSibling 3.3 尾部追加DOM元素 // jQuery写法 $(parent).append($(child)); // DOM写法 parent.appendChild(child) 3.4 头部插入DOM元素 // jQuery写法 $(parent).prepend($(child)); // DOM写法 parent.insertBefore(child, parent.childNodes[0]) 3.5 生成DOM元素 // jQuery写法 $("

") // DOM写法 document.createElement("p") 3.6 删除DOM元素 // jQuery写法 $(child).remove() // DOM写法 child.parentNode.removeChild(child) 3.7 清空子元素 // jQuery写法 $("#elementID").empty() // DOM写法 var element = document.getElementById("elementID"); while(element.firstChild) element.removeChild(element.firstChild); 3.8 检查是否有子元素 // jQuery写法 if (!$("#elementID").is(":empty")){} // DOM写法 if (document.getElementById("elementID").hasChildNodes()){} 3.9 克隆元素 // jQuery写法 $("#elementID").clone() // DOM写法 document.getElementById("elementID").cloned(true) 4 事件的监听

jQuery使用on方法,监听事件和绑定回调函数。

$('button').on('click', function(){ ajax( ... ); });

完全可以自己定义on方法,将它指向addEventListener方法。

Element.prototype.on = Element.prototype.addEventListener;

为了使用方便,可以在NodeList对象上也部署这个方法。

NodeList.prototype.on = function (event, fn) { []['forEach'].call(this, function (el) { el.on(event, fn); }); return this; };

取消事件绑定的off方法,也可以自己定义。

Element.prototype.off = Element.prototype.removeEventListener; 4.1 事件的触发

jQuery的trigger方法则需要单独部署,相对复杂一些。

Element.prototype.trigger = function (type, data) { var event = document.createEvent('HTMLEvents'); event.initEvent(type, true, true); event.data = data || {}; event.eventName = type; event.target = this; this.dispatchEvent(event); return this; };

在NodeList对象上也部署这个方法。

NodeList.prototype.trigger = function (event) { []['forEach'].call(this, function (el) { el['trigger'](event); }); return this; }; 5 各种方法 5.1 attr方法 5.1.1 jQuery使用attr方法,读写网页元素的属性 $("#picture").attr("src", "http://url/to/image") 5.1.2 DOM提供getAttribute和setAttribute方法读写元素属性 imgElement.setAttribute("src", "http://url/to/image") 5.1.3 DOM还允许直接读取属性值,写法要简洁许多 imgElement.src = "http://url/to/image";

需要注意的是,文本框元素(input)的this.value返回的是输入框中的值,链接元素(a标签)的this.href返回的是绝对URL。如果需要用到这两个网页元素的属性准确值,可以用this.getAttribute('value')和this.getAttibute('href')。

5.2 addClass方法 5.2.1 jQuery的addClass方法,用于为DOM元素添加一个class $('body').addClass('hasJS'); 5.2.2 DOM元素本身有一个可读写的className属性,可以用来操作class document.body.className = 'hasJS'; // or document.body.className += ' hasJS'; 5.2.3 HTML 5还提供一个classList对象,功能更强大(IE 9不支持) document.body.classList.add('hasJS'); document.body.classList.remove('hasJS'); document.body.classList.toggle('hasJS'); document.body.classList.contains('hasJS'); 5.3 CSS 5.3.1 jQuery的css方法,用来设置网页元素的样式 $(node).css( "color", "red" ); 5.3.2 DOM元素有一个style属性,可以直接操作 element.style.color = "red”;; // or element.style.cssText += 'color:red'; 5.4 数据储存 5.4.1 jQuery对象可以储存数据 $("body").data("foo", 52); 5.4.2 HTML 5有一个dataset对象

HTML 5有一个dataset对象,也有类似的功能(IE 10不支持),不过只能保存字符串

element.dataset.user = JSON.stringify(user); element.dataset.score = score; 5.5 Ajax 5.5.1 jQuery的ajax方法,用于异步操作 $.ajax({ type: "POST", url: "some.php", data: { name: "John", location: "Boston" } }).done(function( msg ) { alert( "Data Saved: " + msg ); });

我们自定义一个ajax函数,简单模拟jQuery的ajax方法。

function ajax(url, opts){ var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function(){ var completed = 4; if(xhr.readyState === completed){ if(xhr.status === 200){ opts.success(xhr.responseText, xhr); }else{ opts.error(xhr.responseText, xhr); } } }; xhr.open(opts.method, url, true); xhr.send(opts.data); }

使用的时候,除了网址,还需要传入一个自己构造的option对象。

ajax('/foo', { method: 'GET', success: function(response){ console.log(response); }, error: function(response){ console.log(response); } }); 5.6 动画

jQuery的animate方法,用于生成动画效果。

$foo.animate('slow', { x: '+=10px' })

jQuery的动画效果,很大部分基于DOM。但是目前,CSS 3的动画远比DOM强大,所以可以把动画效果写进CSS,然后通过操作DOM元素的class,来展示动画。

foo.classList.add('animate')

如果需要对动画使用回调函数,CSS 3也定义了相应的事件。

el.addEventListener("webkitTransitionEnd", transitionEnded); el.addEventListener("transitionend", transitionEnded);



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭