JavaScript与JQuery节点操作

 

节点关系与类型

任何HTML元素,都有nodeType属性。值有1~12,常用的有:

1.元素节点

2.文本节点

8.注释节点

9.document节点(HTML文档对象)

10.DTD(文档类型定义)

box.nodeType       //返回值1,获得nodeType属性

box.childNodes            //获得全部子元素 //兼容性问题 注意:在chrome,IE9 IE10高版本的浏览器里面的回车都认为是节点,IE6,7,8低版本的浏览器不算,高版本浏览需遍历筛选

box.parentNode    //查找父节点

prevs.previousSibling   //查找上一个兄弟元素

prevs.nextSibling   //查找下一个兄弟元素

(注意,这两个元素childNodes一样,拥有兼容性问题)

可以先遍历然后进行筛选取得元素

例:

var p=document.getElementById('p');

var prevs = p;

while(prevs =prevs.previousSibling){    //通过while循环遍历元素

if(prevs.nodeType == 1){    //使用nodeType属性进行筛选元素

prevs.style.background = 'red'; //得到上一个元素后进行操作

}

}

var nexts =p;

while(nexts = nexts.nextSibling){   //同理查找下一个元素也一样

if(nexts.nodeType == 1){

nexts.style.background ='blue';

}

}

JQuery节点关系

$('.box').children(); //获得所有子元素,屏蔽兼容性问题,不用考虑兼容性问题,可以传递一个参数,对子元素进行筛选

$('p').find();     //查找所有子元素及子元素得后代,先找到的第一个元素排0,以此类推,和children一样可以传递一个参数,进行筛选

$('p').parent();       //查找父元素,任何元素只有一个父元素

$('p').parents();      //查找所有祖先节点

siblings();       //查找所有兄弟元素     可以传递参数(选择器,筛选器)进行筛选

prev()、next()、prevAll()、nextAll()

//前一个、后一个兄弟、前所有兄弟、后所有兄弟

总结:JQuery屏蔽所有的不兼容,只选择nodeType=1的元素,不选择文本。注释等等并且不用for循环,一次性得到所有东西

 

JavaScript节点操作

var oLi = document.createElement("li");     //添加节点

ul.appendChild(oLi);把新节点,追加到元素中

box.innerHTML ='<p>Hello word!</p>';   //也可以通过这种方式添加一个标签

ul.insertBefore(新元素,原有元素);       //将新元素插入到指定元素之前

list.removeChild(oldchild);           //删除元素,必须找到父元素才能进行删除,可以使用parentNode查找父元素

父节点.replaceChild(新节点,原节点);         //替换节点

box.appendChild(p.cloneNode(true));     //克隆节点,true表示克隆全部(属性与子节点),默认克隆单个节点

JQuery节点操作

$('.box').append('<p>Text5<p>');//添加节点,无需createElement创建节点,相当于使用innerHTML直接添加

$("<p>Text6</p>").appendTo('.box');        //表示被动添加,即与append相反,将子节点添加到父节点

$('.box').prepend("<p>Text7</p>");    //将节点添加到第一位

$("<p>Text7</p>").prependTO('.box');      //表示被动,将节点添加到第

$('#p').after("<h3>这是H3</h3>");    //插入兄弟节点,插入之后

$('#p').before("<h4>这是H4</h4>"); //插入兄弟节点,插入之前

$('<p>Text11</p>').insertBefore($('p')[2]);        //被动,插入兄弟节点,插入之前

$('<p>Text22</p>').insertAfter($('p')[2]);    //被动,插入兄弟节点,插入之后

$('a').wrap("<b></b>");使用b标签包裹起来

$('a').wrapAll("<b></b>");    //全部使用b标签包裹起来

$('.box').empty();    //删除(清空)所有内容

$('p').remove();      //删除页面所有的p标签

$('.box').append($('p').eq(0).clone());   //克隆节点,并添加

JS节点操作(JS原生+JQuery)的更多相关文章

  1. js节点操作实例

    写了一个简单的小例子来引用js实例 1. 初步节点操作: 2.兼容性节点操作: 3.节点的类型,名字: 4.使用setAttribute设置属性 5.节点复制操作: 6.删除和替换节点 如有错误,还望 ...

  2. js节点操作

    在看<javascript高级程序设计>,看到节点操作这一块,觉得我只知道用appendChild(),太肤浅了,记录下学到的东西. 每个节点都有一个 parentNode 属性,该属性指 ...

  3. 原生JS节点操作

    获取子节点 1. children 不是标准的dom属性,但是几乎被所有浏览器支持.获取子元素的元素节点(只包括元素节点) 注意:在IE中,children包含注释节点. 2. childNodes ...

  4. 节点操作js jQuery

    append() - 在被选元素的结尾插入内容 prepend() - 在被选元素的开头插入内容 after() - 在被选元素之后插入内容 before() - 在被选元素之前插入内容 functi ...

  5. js 节点操作

    添加和删除节点(HTML 元素). 创建新的 HTML 元素 如需向 HTML DOM 添加新元素,您必须首先创建该元素(元素节点),然后向一个已存在的元素追加该元素. 实例 <div id=& ...

  6. 原生JS和jQuery中基本的节点操作

    js中节点操作**document.createElement()**用来生成网页元素节点,参数为元素的标签名: **document.createTextNode()**用来生成文本节点,参数为所要 ...

  7. 原生JS的使用,包括jquery和原生JS获取节点、jquery和原生JS修改属性的比较

    一.前言 相比于JS这条直达终点.满是荆棘的小路,jquery无疑是康庄大道了,足够的简洁.易用给了它辉煌的地位.然而,毕竟是绕着道的插件,当小路走着走着变成大路的时候,曾经的大路也就失去了他自身的优 ...

  8. jquery实现点击展开列表同时隐藏其他列表 js 对象操作 对象原型操作 把一个对象A赋值给另一个对象B 并且对象B 修改 不会影响 A对象

    这篇文章主要介绍了jquery实现点击展开列表同时隐藏其他列表的方法,涉及jquery鼠标事件及节点的遍历与属性操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了jquery实现点击 ...

  9. js进阶 11-9/10/11 jquery创建和插入节点

    js进阶 11-9/10/11 jquery创建和插入节点 一.总结 一句话总结: 1.jquery插入节点8个方法? 内部之前,内部之后,之前,之后:各两个 append()和appendTo() ...

随机推荐

  1. Mac下磁盘无法抹除问题解决

    安装CentOS到扩容卡,每次安装都会造成bootcamp分区的windows出问题,遂安装ubantu,结果扩容卡有问题-->无法读取您的磁盘,打开磁盘工具无法抹除,由于无法读取在window ...

  2. Atcoder AGC016 E Poor Turkeys

    比赛的时候口胡这道题口胡了一年,看完题解被教做人 题意:有n只火鸡,m个猎人按序来杀火鸡,从自己预先选的两只中杀一只,问有多少火鸡对可以同时存活 考虑对于每一只火鸡i,按时间逆序维护一个最小的集合Si ...

  3. 汉柏杯&&政治生日6月5日&&端午节

    (一)汉柏杯 前不久汉柏杯2019年计算机设计大赛由我校承办,参加了软件应用开发组竞赛.开发了一个基于微信公众号的求职招聘系统,虽然很low但是貌似还是进了国赛,大概八月十号去安徽芜湖参加国赛决赛.据 ...

  4. CentOS 6.4 中yum命令安装php5.2.17

    最近给公司部署服务器的时候发现他们提供的服务器是centos6.4系统的,装好系统和相关服务httpd,mysql,php,一跑代码,发现php5.3中的zend加密不能用,安装Zend Guard ...

  5. git忽略已经被提交的文件

    git忽略已经被提交的文件 git rm --cached logs/xx.log 然后更新 .gitignore 忽略掉目标文件, 最后 git commit -m "We really ...

  6. 洪水 Pow

    Description AKD市处在一个四面环山的谷地里.最近一场大暴雨引发了洪水,AKD市全被水淹没了.Blue Mary,AKD市的市长,召集了他的所有顾问(包括你)参加一个紧急会议.经过细致的商 ...

  7. 一道笔试题和UML思想 ~

    一句软件工程界的名言,让我想起了一个和一道笔试题有关的故事.希望更多的人了解 UML 背后的思想比他的语法更重要,是笔者写作本文的一点小愿望. 一.从一句软件工程名言说起 对很多事情的处理上,东西方都 ...

  8. JavaScript中的小陷阱(不定期更新。。)

    1. var scores = [1, 2, 3]; var total = 0; for (var score in scores) { total += score; } var mean = t ...

  9. zk实现服务选举

    非公平选举算法1)首先通过zk创建一个 /server 的PERSISTENT节点 2)多台机器同时创建 /server/leader EPHEMERAL子节点 3)子节点只能创建一个,后创建的会失败 ...

  10. Mybatis基础配置及增删查改操作

    一.简介 平时我们都用JDBC访问数据库,除了需要自己写SQL之外,还必须操作Connection, Statement, ResultSet 这些其实只是手段的辅助类. 不仅如此,访问不同的表,还会 ...