JavaScript 实现获取多个 tagName 节点数组的方法

作者:半夏时间:2026-10-28 03:56:56浏览:234

本文介绍了一种使用 JavaScript 获取指定父元素下多个特定标签名节点的方法。通过遍历所有子节点并利用正则表达式匹配 tagName,实现类似 jQuery 的多选择器效果,返回按文档流顺序排列的节点数组。

JavaScript 实现获取多个 tagName 节点数组的方法

出于功能需求,编写了一个用于获取多个 tagName 节点集合的小工具。该方法的逻辑类似于 jQuery 中 $(‘input,select,textarea','#form') 的效果,其返回值是按照节点在原有文档流中的出现顺序进行排列的。

代码如下:

// 获取指定标签类型的节点数组 用例:GetTagNames('input,select,textarea',document.getElementById('form'))
function GetTagNames(tagnames,parEl){
// 若父节点未定义,则默认使用 document
var parEl=parEl || document;
// 获取指定父元素下的所有子节点
var all=parEl.getElementsByTagName('*');
// 用于存放所有符合筛选条件的子节点
var nodes=[];
// 将传入的 tagName 字符串转换为用于判断的正则表达式
var reg=eval('/'+tagnames.split(',').join('|')+'/i');
// 遍历所有节点,进行判断并存储符合条件的节点
for(var ii=0;ii<all.length;ii++){
if(reg.test(all[ii].nodeName)){
nodes.push(all[ii]);
  }
 }
// 返回结果
return nodes;
}

来自:mrthink.net

作者最新文章