背景:

由于原生的getElementsByClassName不支持在指定标签中查找指定元素为指定class的情况,所以,这里舍弃了原生的方法调用

 

方法一:

function getElementByClassName(parent,tagName,className) {/**参数说明:*@parent:父元素,默认为document*@tagName:子元素的标签名*@className: 用空格分开的className字符串*/var aEls=parent.getElementsByTagName(tagName);var arr=[];for(var i=0;i<aEls.length;i++){var aClassName=aEls[i].className.split(' ');//注意,是用' '(空格)拆分for(var j=0;j<aClassName.length;j++){if(aClassName[j] == className){arr.push(aEls[i]);break;}}}return arr;
}

方法二:

function getElementByClassName(parent,tagName,className) {/**参数说明:*@parent:父元素,默认为document*@tagName:子元素的标签名*@className: 用空格分开的className字符串*/var aEls=parent.getElementsByTagName(tagName);var arr=[];for(var i=0;i<aEls.length;i++){if(aEls[i].classList.contains(className)){arr.push(aEls[i]);}}return arr;
}

测试:

<div id="area"><p class="p1">1</p><p class="p1">2</p><p class="p2 p3">3</p><p class="p1 p3">4</p><p class="p2 p2">5</p>
</div><script type="text/javascript">
var oArea=document.getElementById('area');
var aP1=getElementByClassName(oArea,'p','p1');
var aP2=getElementByClassName(oArea,'p','p2');console.log(aP1);
console.log(aP2);</script>

方法一,测试结果:

方法二,测试结果:

了解更多:

1#支持多个class查询和在某个范围内进行查询的getElementsByClassName实现

http://www.cnblogs.com/fool/archive/2010/10/09/1846424.html

2#getElementsByClassName的理想实现

http://www.cnblogs.com/rubylouvre/archive/2009/07/24/1529640.html

转载于:https://www.cnblogs.com/kevinCoder/p/4605277.html

Javascript:getElementsByClassName相关推荐

  1. 深入理解javascript选择器API系列第二篇——getElementsByClassName

    前面的话 既然有getElementById()和getElementsByTagName()方法,为什么没有getElementsByClassName()呢?id属性.标签名.class属性并没有 ...

  2. html+dom+chm,HTML DOM getElementsByClassName() - JavaScript - 菜鸟学堂-脚本之家

    HTML DOM getElementsByClassName() 方法 实例 获取所有指定类名的元素: var x = document.getElementsByClassName("e ...

  3. 用JavaScript和CSS实现“在页面中水平和垂直居中”的时钟

    思路:实现起来最麻烦的事实上是水平居中和垂直居中,当中垂直居中是最麻烦的. 考虑到浏览器兼容性,网上看了一些资料,发如今页面中垂直居中确实没有什么太好的办法. 于是就採用了position:fixed ...

  4. 翻译-高质量JavaScript代码书写基本要点(转载)

    by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wordpress/?p=1173 原文作者:S ...

  5. 如何获取HTML元素对应JavaScript对象?

    <!DOCTYPE html> <html><head><meta charset="UTF-8"><title>< ...

  6. 我与前端之间不得不说的三天两夜之javaScript

    前端基础之JavaScript JavaScript概述 JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后 ...

  7. javascript选择器_如何通过选择正确JavaScript选择器来避免沮丧

    javascript选择器 选择器如何影响代码的快速指南 (A quick guide on how selectors affect your code) While working on a pr ...

  8. javascript 代码_如何使您JavaScript代码保持简单并提高其可读性

    javascript 代码 by Leonardo Lima 莱昂纳多·利马(Leonardo Lima) 如何使您JavaScript代码保持简单并提高其可读性 (How to keep your ...

  9. css菜单缓慢滑动_如何使用HTML,CSS和JavaScript构建滑动菜单栏

    css菜单缓慢滑动 by Supriya Shashivasan 由Supriya Shashivasan 如何使用HTML,CSS和JavaScript构建滑动菜单栏 (How to build a ...

最新文章

  1. 动态内存检测工具Valgrind
  2. layui当前表格第一行_Excel表格如何写入组态王数据,看完就会了
  3. JESD204B概述
  4. menu.php,menu.php
  5. linux ntp时间立即同步命令_如何在 Linux 下确认 NTP 是否同步?
  6. django 返回ajax html,Django 前台通过json 取出后台数据
  7. 作者:周宗放(1950-),男,电子科技大学经济与管理学院教授、博士生导师,风险分析与数据科学研究中心主任...
  8. 统计学习方法读书笔记14-逻辑斯蒂回归代码实现与最大熵代码实现
  9. Prometheus监控(二)
  10. 水稻PHP基因,科学网—和驯化相关的水稻基因 - 闫双勇的博文
  11. GBK 汉字内码扩展规范编码表
  12. imageJ的二次开发(全)
  13. 计算机信息计量单位中的1k代表多少字节,1k等于多少字节
  14. IT 生涯初探与工作经验分享【计算机、软件工程相关专业毕业生应该知道的事】---- 来自2008级学长的掏心窝分享
  15. 论文解读:医学影像中的注意力机制
  16. php去除英文和标点,php实现过滤中文标点符号及过滤英文标点符号的示例代码
  17. python预测子女身高_Python 孩子身高预测
  18. ArcGIS教程 - 附录 - ArcGIS快捷键
  19. 信息系统项目管理师论文范文(一)
  20. 论文解读: Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference

热门文章

  1. Delphi 与 DirectX 之 DelphiX(83): TDIB.FilterLine()、FilterRect();
  2. 不可错过的MSDN TV —— IronPython: Python on the .NET Framework (中)
  3. 西部数据app可导致Windows 和 macOS 提权
  4. 新型APT组织正在攻击全球的政府实体
  5. 提升开发者安全的七大可行实践
  6. 如何更好使用 ng-zorro-antd 图标
  7. 前端存储 (2) - sessionStorage ,localStorage
  8. request.getcontextPath() 详解(转)
  9. 重磅,企业实施大数据的路径
  10. 输入n求N*N矩阵,规定矩阵沿45度线递增