常见的dom操作----原生JavaScript与jQuery

1.创建元素 文本节点



JavaScript:

document.createElement(),只接收一个参数,创建后需要手动将其添加到文档树中,例如:

var newDiv = document.createElement("div");if(document.body){
  document.body.appendChild(newDiv);}else{  document.documentElement.appendChild(newDiv);}

document.createTextNode(),只接收一个参数,即要插入节点的文本;

jquery:直接$("<div></div>),或者下面:

  • wrap()   // $A.wrap(‘B‘)即元素A层添加B类型的HTML结果
<div class="container">
  <div class="inner">Hello</div>
  <div class="inner">Goodbye</div>
</div>$(‘.inner‘).wrap(‘<div class = "new"/>‘);

结果:

  <div class="container">

    <div class="new">

      <div class="inner">Hello</div>

    </div>

    <div class="new">

      <div class="inner">Goodbye</div>

    </div>

  </div>

  • wrapAll()  //所创建的new <div>包裹了所有匹配的元素:
<div class="container">
  <div class="inner">Hello</div>
  <div class="inner">Goodbye</div>
</div>
$(‘.inner‘).wrapAll(‘<div class="new" />‘);

 结果: 

  <div class="container">

   <div class="new">

    <div class="inner">Hello</div>

    <div class="inner">Goodbye</div>

   </div>

   </div>

  • wrappInner() // $A.wrapInner(‘B‘)即元素A层添加B类型的HTML结果
<div class="container">
  <div class="inner">Hello</div>
  <div class="inner">Goodbye</div>
</div>
$(‘.inner‘).wrapInner(‘<div class="new" />‘);

 结果:

  <div class="container">

    <div class="inner">

      <div class="new">Hello</div>

    </div>

    <div class="inner">

      <div class="new">Goodbye</div>

    </div>

  </div>

2.节点关系及操作



JavaScript:

父节点:parentNode

子节点:childNodes

兄弟节点:nextSibling,previousSibling

相关操作:

  • appendChild()  向子节点列表的末尾添加新的子节点
  • insetBefore()    已有子节点之前插入一个新的子节点
  • replaceChild()  替换节点
  • removeChild()  删除节点
  • cloneNode(true/false)  复制节点

jquery:(比较多选择,详情看http://www.css88.com/jqapi-1.9/手册)

父元素:parent()  parents()

子元素:children()

兄弟节点:next()  nextAll()  prev()  prevAll()  siblings()......

相关操作:

  节点内部插入,插入的内容变子节点

  • append()  appendTo()  向子节点列表的末尾添加新的子节点,注意这两个内容和目标的位置不同,刚好相反
  • prepend() prependTo() 已有子节点之前插入一个新的子节点,注意这两个内容和目标的位置不同,刚好相反

  节点外部插入,插入的内容变兄弟节点

  • after()  before() 
  • insertAfter() insertBefore()
  • replaceAll() replaceWith()  功能类似,但是目标和源相反
  • remove() detach() 这两个相似,都是移除元素,后者不会移除绑定的事件及与该元素相关的jQuery数据
  • empty()  不接受任何参数。不仅移除子元素(和其他后代元素),同样移除元素里的文本
  • clone(flase/true) 深度复制所有匹配的元素集合,包括所有匹配元素、匹配元素的下级元素、文字节点。和原生JavaScript不同,这里的false/true表示是否会复制元素上的事件处理函数,而原生的表示深克隆还是浅克隆
时间: 2024-08-08 09:41:16

常见的dom操作----原生JavaScript与jQuery的相关文章

四种常见的提示弹出框(success,warning,error,loading)原生JavaScript和jQuery分别实现

虽然说现在官方的自带插件已经有很多了,但是有时候往往不能满足我们的需求,下面我简单介绍一些 常见的四种提示弹出框(success,loading,error,warning),我分别用原生JavaScript和jQuery来介绍分享给各位博友! 一.首先介绍原生JavaScript来实现四种提示弹出框: 第一步:先看看html的建立 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:

为什么原生 JavaScript 开发越来越多受欢迎?是否应该跟风用原生JavaScript代替 jQuery等库?

本文标签:  jQuery的作用 原生JavaScript优势 jQuery官网 jQuery处理DOM和跨浏览器 JavaScript新特性 互联网杂谈 随着 JavaScript 本身的完善,越来越多的人开始喜欢使用原生 JavaScript 开发代替各种库,其中不少人发出了用原生 JavaScript 代替 jQuery 的声音.这并不是什么坏事,但也不见得就是好事.如果你真的想把 jQuery从前端依赖库中移除掉,我建议你慎重考虑. 首先 jQuery 是一个第三方库.库存在的价值之一在

为什么要用原生 JavaScript 代替 jQuery?

随着 JavaScript 本身的完善,越来越多的人开始喜欢使用原生 JavaScript 开发代替各种库,其中不少人发出了用原生 JavaScript 代替 jQuery 的声音.这并不是什么坏事,但也不见得就是好事.如果你真的想把 jQuery 从前端依赖库中移除掉,我建议你慎重考虑. 首先 jQuery 是一个第三方库.库存在的价值之一在于它能极大地简化开发.一般情况下,第三方库都是由原生语言特性和基础 API 库实现的.因此,理论上来说,任何库第三方库都是可以用原生语言特性代替的,问题在

jQuery选择器和DOM操作——《锋利的jQuery》(第2版)读书笔记1

第1章 认识jQuery jQuery有以下优势: 轻量级: 强大的选择器: 出色的DOM操作的封装: 可靠的事件处理机制: 完善的Ajax: 不污染顶级变量: 出色的浏览器兼容性: 链式操作方式: 隐式迭代: 行为层与结构层的分离: 丰富的插件支持: 完善的文档: 开源. jQuery对象就是通过jQuery包装DOM对象后产生的对象. 在jQuery对象中无法使用DOM对象的任何方法.同样,DOM对象也不能使用jQuery里的方法. jQuery对象和DOM对象的相互转换        如果

dom操作原生js巩固

原生js的dom操作巩固 前言:这玩意其实很简单,但是每次用的时候都有点含糊,故写个文章,每次忘得时候看一看 原生dom操作 1.创建dom元素:createElement(标签名) 2.删除dom元素:removeChild(标签名) 3.在什么元素后添加dom元素:元素.appendChild(标签名) 4.在什么元素前添加dom元素:元素.insertBefore(标签名) 5.替换dom元素:replace(插入的元素,被替换的元素) 6.获取父节点:parentNode 7.获取子节点

原生javascript 实现jQuery代码效果对比

以下是jQuery和JavaScript实现相同操作的等价代码. 选择元素 Javascript代码 // jQuery var els = $('.el'); // 原生方法 var els = document.querySelectorAll('.el'); // 函数法 var $ = function (el) { return document.querySelectorAll(el); } var els = $('.el'); // 或者使用regex-based micro-s

mui项目中如何使用原生JavaScript代替jquery来操作dom

转载于:http://www.bcty365.com/content-146-3661-1.html 最近在用mui写页面,当然了在移动App里引入jq或zepto这些框架,肯定是极不理性的.原生JS挺简单,为何需要jq?jq的成功当时是因为ie6.7.8.9.10.chrome.ff这些浏览器不兼容,让开发者崩溃,而且pc上浏览器性能好,跨平台兼容也不影响性能.但jq根本就不是为手机设计的.手机上只有webkit浏览器(忽略wp,反正mui不支持wp),根本就不需要jq这种封装框架来操作dom

常见浏览器的宽高代码写法!有原生JavaScript和jquery两种写法-------------------------------以及我的个人网站

我的个人网站 点击链接!欢迎大家访问 下面是网页一些常见的宽高的获取.........这是原生的写法(JavaScript) 网页可见区域宽: document.body.clientWidth 网页可见区域高: document.body.clientHeight 网页可见区域宽: document.body.offsetWidth (包括边线的宽) 网页可见区域高: document.body.offsetHeight (包括边线的高) 网页正文全文宽: document.body.scro

js以字符串方式创建DOM(原生js,jquery,extjs)

原生js <script type="text/javascript"> var divHtml= '<div>'+ '<ul>'+ '<li>'+ '<a href="#">something added</a>'+ '</li>'+ '</ul>'+ '</div>'; var div=document.createElement('div'); div.