100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > html获取孩子节点 JS实现JQuery children()方法 获取某个元素下所有子元素节点或者

html获取孩子节点 JS实现JQuery children()方法 获取某个元素下所有子元素节点或者

时间:2020-05-19 08:28:02

相关推荐

html获取孩子节点 JS实现JQuery children()方法 获取某个元素下所有子元素节点或者

想必大家都知道jquery中有个children()是一个遍历的方法,作用是获取某个指定元素下所有子元素,那么今天我们来用原生JS实现一个这个children(),其实很简单,只不过需要处理一下IE678兼容的问题,大家都知道IE678是一个‘很标准的浏览器’对于前端人员来说,这可真是爽歪歪的浏览器啊,最喜欢IE678了。

好了,那咱们来实现下。

Title

window.onload = function () {

var odiv = document.getElementById('div');

var browser = /MSIE (6|7|8)/i.test(navigator.userAgent);

function children(curEle, tagName) {

var ary = [];

if (browser) {

var nodeList = curEle.childNodes;

for (var i = 0, len = nodeList.length; i < len; i++) {

var curNode = nodeList[i];

curNode.nodeType === 1 ? ary[ary.length] = curNode : null;

}

nodeList = null;

} else {

ary = Array.prototype.slice.call(curEle.children)

}

if (typeof tagName === "string") {

for (var k = 0; k < ary.length; k++) {

var curEleNode = ary[k];

if (curEleNode.nodeName.toLowerCase() !== tagName.toLowerCase()) {

ary.splice(k, 1);

k--;

}

}

}

return ary

}

alert(children(odiv,'div'))

console.log(children(odiv,'div'))

}

提示:你可以先修改部分代码再运行。

这里借用的是childNodes这个属性,基本上没有什么兼容上的问题,利用符合要求的就push进数组,然后进行二次筛选调用的时候

调用说明:

在console中查看数据

可以直接children(odiv)传入一个参数,实现找到odiv这个元素下所有的元素

还可以children(odiv,’div’)传入两个参数,实现找到odiv这个元素下所有div的元素

喜欢用原生JS的同学都应该知道js的函数是可以随便传入几个参数的,所以说传入一个或者两个,甚至三个都没问题的。就看你有没有那么多需求了。

原生JS实现JQuery children()方法就介绍到这里了,咱们下期见!

html获取孩子节点 JS实现JQuery children()方法 获取某个元素下所有子元素节点或者某个元素下指定标签元素 – Fakins Blog...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。