javascript - 下面这一段函数是什么意思呀?
本文介绍了javascript - 下面这一段函数是什么意思呀?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
var walk_the_DOM = function walk(node, func){
func(node);
node = node.firstChild;
while (node) {
walk(node,func);
node = node.nextSibling;
}
};
var getElementsByAttribute = function (att, value) {
var results = [];
walk_the_DOM(document.body,function (node) {
var actual = node.nodeType === 1 && node.getAttribute(att);
if (typeof actual === "string" && (actual === value || typeof value !== "string")) {
results.push(node);
}
});
return results;
};
主要是if (typeof actual === "string" && (actual === value || typeof value !== "string"))这一句
圈住的那一部分
解决方案
typeof actual === "string" && (actual === value || typeof value !== "string")
这个actual 是上句获取到的属性值;进而来和value 来做对比;当值一样是也就是
typeof actual === "string" && (actual === value )
这个条件成立;证明这个是要找的值,这个是找到属性和属性值一样的元素;
typeof actual === "string" && (typeof value !== "string")
这个条件成立时;是找到含有这个属性;但属性值不相同的元素;(从字面上理解)
总结:就是这个通过属性获取元素的方法,必须需要一个属性,属性值非必须;
当属性值没有传时,返回的时候含有这个属性的元素;
当属性值传时,返回的是含有属性并且属性值也一样的元素。
这篇关于javascript - 下面这一段函数是什么意思呀?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文