js jquery获取当前元素的兄弟级 上一个 下一个元素


Posted in Javascript onSeptember 01, 2015

var chils= s.childNodes;  //得到s的全部子节点

var par=s.parentNode;   //得到s的父节点

var ns=s.nextSbiling;   //获得s的下一个兄弟节点

var ps=s.previousSbiling;  //得到s的上一个兄弟节点

var fc=s.firstChild;   //获得s的第一个子节点

var lc=s.lastChile;   //获得s的最后一个子节点

JS获取节点父级,子级元素

先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比。

JS的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当作DOM元素

<div id="test">
<div></div>
<div></div>
</div>

原生的JS获取ID为test的元素下的子元素。

可以用:

var a = docuemnt.getElementById("test").getElementsByTagName_r("div");

这样是没有问题的

此时a.length=2;

但是如果我们换另一种方法

var b =document.getElementByIdx_x("test").childNodes;

此时b.length 在IE浏览器中没问题,其依旧等于2,但是在FF浏览器中则会使4,是因为FF把换行也当做一个元素了。

所以,在此,我们就要做处理了,需遍历这些元素,把元素类型为空格而且是文本都删除。

function del_ff(elem){
var elem_child = elem.childNodes;
for(var i=0; i<elem_child.length;i++){
if(elem_child[i].nodeName == "#text" && !/\s/.test(elem_child.nodeValue))
{elem.removeChild(elem_child)
}
}
}

上述函数遍历子元素,当元素里面有节点类型是文本并且文本类型节点的节点值是空的。就把他删除。

nodeNames可以得到一个节点的节点类型,/\s/是非空字符在JS里的正则表达式。前面加!,则表示是空字符

test() 方法用于检测一个字符串是否匹配某个模式.语法是: RegExpObject.test(string)

如果字符串 string 中含有与 RegExpObject 匹配的文本,则返回 true,否则返回 false。

nodeValue表示得到这个节点里的值。

removeChild则是删除元素的子元素。

之后,在调用子,父,兄,这些属性之前,调用上面的函数把空格清理一下就可以了

<div id="test">
<div></div>
<div></div>
</div>

<script>
function dom() {
var s= document.getElementByIdx_x("test");
del_ff(s);  //清理空格
var chils= s.childNodes; //得到s的全部子节点
var par=s.parentNode;  //得到s的父节点
var ns=s.nextSbiling;  //获得s的下一个兄弟节点
var ps=s.previousSbiling; //得到s的上一个兄弟节点
var fc=s.firstChild;  //获得s的第一个子节点
var lc=s.lastChile;  //获得s的最后一个子节点
}
</script>

下面介绍JQUERY的父,子,兄弟节点查找方法

jQuery.parent(expr)  找父亲节点,可以传入expr进行过滤,比如$("span").parent()或者$("span").parent(".class")

jQuery.parents(expr),类似于jQuery.parents(expr),但是是查找所有祖先元素,不限于父元素

jQuery.children(expr).返回所有子节点,这个方法只会返回直接的孩子节点,不会返回所有的子孙节点

jQuery.contents(),返回下面的所有内容,包括节点和文本。这个方法和children()的区别就在于,包括空白文本,也会被作为一个

jQuery对象返回,children()则只会返回节点

jQuery.prev(),返回上一个兄弟节点,不是所有的兄弟节点

jQuery.prevAll(),返回所有之前的兄弟节点

jQuery.next(),返回下一个兄弟节点,不是所有的兄弟节点

jQuery.nextAll(),返回所有之后的兄弟节点

jQuery.siblings(),返回兄弟姐妹节点,不分前后

jQuery.find(expr),跟jQuery.filter(expr)完全不一样。jQuery.filter()是从初始的jQuery对象集合中筛选出一部分,而jQuery.find()
的返回结果,不会有初始集合中的内容,比如$("p"),find("span"),是从<p>元素开始找<span>,等同于$("p span")

以上介绍就是本文关于js jquery获取当前元素的兄弟级 上一个 下一个元素,希望对大家有所帮助。

Javascript 相关文章推荐
替代window.event.srcElement效果的可兼容性的函数
Dec 18 Javascript
jquery.validate使用攻略 第二部
Jul 01 Javascript
jquery ajax abort()的使用方法
Oct 28 Javascript
javascript如何判断输入的url是否正确
Apr 11 Javascript
javascript实现淡蓝色的鼠标拖动选择框实例
May 09 Javascript
详解微信小程序开发—你期待的分享功能来了,微信小程序序新增5大功能
Dec 23 Javascript
AngularJS表单基本操作
Jan 09 Javascript
React-Native之定时器Timer的实现代码
Oct 04 Javascript
详解vuex结合localstorage动态监听storage的变化
May 03 Javascript
这应该是最详细的响应式系统讲解了
Jul 22 Javascript
layer.open提交子页面的form和layedit文本编辑内容的方法
Sep 27 Javascript
vue-router 2.0 跳转之router.push()用法说明
Aug 12 Javascript
JavaScript常用标签和方法总结
Sep 01 #Javascript
jquery简单实现带渐显效果的选项卡菜单代码
Sep 01 #Javascript
JavaScript中innerHTML,innerText,outerHTML的用法及区别
Sep 01 #Javascript
Jquery常用的方法汇总
Sep 01 #Javascript
基于jquery css3实现点击动画弹出表单源码特效
Aug 31 #Javascript
基于jQuery实现的向下滑动二级菜单效果代码
Aug 31 #Javascript
jquery实现可点击伸缩与展开的菜单效果代码
Aug 31 #Javascript
You might like
深入掌握include_once与require_once的区别
2013/06/17 PHP
php判断数组元素中是否存在某个字符串的方法
2014/06/14 PHP
Sublime里直接运行PHP配置方法
2014/11/28 PHP
PHP判断浏览器、判断语言代码分享
2015/03/05 PHP
php实现解析xml并生成sql语句的方法
2018/02/03 PHP
Aster vs KG BO3 第一场2.18
2021/03/10 DOTA
javascript form 验证函数 弹出对话框形式
2009/06/23 Javascript
分享Javascript中最常用的55个经典小技巧
2013/11/29 Javascript
jQuery中index()的用法分析
2014/09/05 Javascript
jquery中filter方法用法实例分析
2015/02/06 Javascript
深入理解Node.js的HTTP模块
2016/10/12 Javascript
Node.js使用NodeMailer发送邮件实例代码
2017/03/06 Javascript
Easyui使用Dialog行内按钮布局的实例
2017/07/27 Javascript
JavaScript判断数组类型的方法
2019/10/23 Javascript
关于不懂Chromedriver如何配置环境变量问题解决方法
2019/06/12 Python
python 通过视频url获取视频的宽高方式
2019/12/10 Python
MNIST数据集转化为二维图片的实现示例
2020/01/10 Python
Python爬虫程序架构和运行流程原理解析
2020/03/09 Python
基于Tensorflow的MNIST手写数字识别分类
2020/06/17 Python
开发人员所需要知道的HTML5性能分析面面观
2012/07/05 HTML / CSS
关于HTML5+ API plusready的兼容问题
2020/11/20 HTML / CSS
美国时尚孕妇装品牌:A Pea in the Pod
2017/07/16 全球购物
丽笙酒店官方网站:Radisson Hotels
2019/05/07 全球购物
NHL官方在线商店:Shop.NHL.com
2020/05/01 全球购物
个人简历的自荐信
2013/10/23 职场文书
幼儿师范毕业生自荐信
2013/11/09 职场文书
财务人员个人求职信范文
2013/12/04 职场文书
技校生自我鉴定
2013/12/08 职场文书
大二学生学习个人自我评价
2014/01/19 职场文书
高中教师评语大全
2014/04/25 职场文书
公民授权委托书
2014/10/15 职场文书
商铺门面租房协议书
2014/10/21 职场文书
企业安全生产检查制度
2015/08/06 职场文书
python opencv人脸识别考勤系统的完整源码
2021/04/26 Python
微信小程序APP页面的之间的相互传递参数以及自定义组件
2022/04/19 Javascript
Linux磁盘管理方法介绍
2022/06/01 Servers