Javascript:getElementsByClassName
背景:
由于原生的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相关推荐
- 深入理解javascript选择器API系列第二篇——getElementsByClassName
前面的话 既然有getElementById()和getElementsByTagName()方法,为什么没有getElementsByClassName()呢?id属性.标签名.class属性并没有 ...
- html+dom+chm,HTML DOM getElementsByClassName() - JavaScript - 菜鸟学堂-脚本之家
HTML DOM getElementsByClassName() 方法 实例 获取所有指定类名的元素: var x = document.getElementsByClassName("e ...
- 用JavaScript和CSS实现“在页面中水平和垂直居中”的时钟
思路:实现起来最麻烦的事实上是水平居中和垂直居中,当中垂直居中是最麻烦的. 考虑到浏览器兼容性,网上看了一些资料,发如今页面中垂直居中确实没有什么太好的办法. 于是就採用了position:fixed ...
- 翻译-高质量JavaScript代码书写基本要点(转载)
by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wordpress/?p=1173 原文作者:S ...
- 如何获取HTML元素对应JavaScript对象?
<!DOCTYPE html> <html><head><meta charset="UTF-8"><title>< ...
- 我与前端之间不得不说的三天两夜之javaScript
前端基础之JavaScript JavaScript概述 JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后 ...
- javascript选择器_如何通过选择正确JavaScript选择器来避免沮丧
javascript选择器 选择器如何影响代码的快速指南 (A quick guide on how selectors affect your code) While working on a pr ...
- javascript 代码_如何使您JavaScript代码保持简单并提高其可读性
javascript 代码 by Leonardo Lima 莱昂纳多·利马(Leonardo Lima) 如何使您JavaScript代码保持简单并提高其可读性 (How to keep your ...
- css菜单缓慢滑动_如何使用HTML,CSS和JavaScript构建滑动菜单栏
css菜单缓慢滑动 by Supriya Shashivasan 由Supriya Shashivasan 如何使用HTML,CSS和JavaScript构建滑动菜单栏 (How to build a ...
最新文章
- 动态内存检测工具Valgrind
- layui当前表格第一行_Excel表格如何写入组态王数据,看完就会了
- JESD204B概述
- menu.php,menu.php
- linux ntp时间立即同步命令_如何在 Linux 下确认 NTP 是否同步?
- django 返回ajax html,Django 前台通过json 取出后台数据
- 作者:周宗放(1950-),男,电子科技大学经济与管理学院教授、博士生导师,风险分析与数据科学研究中心主任...
- 统计学习方法读书笔记14-逻辑斯蒂回归代码实现与最大熵代码实现
- Prometheus监控(二)
- 水稻PHP基因,科学网—和驯化相关的水稻基因 - 闫双勇的博文
- GBK 汉字内码扩展规范编码表
- imageJ的二次开发(全)
- 计算机信息计量单位中的1k代表多少字节,1k等于多少字节
- IT 生涯初探与工作经验分享【计算机、软件工程相关专业毕业生应该知道的事】---- 来自2008级学长的掏心窝分享
- 论文解读:医学影像中的注意力机制
- php去除英文和标点,php实现过滤中文标点符号及过滤英文标点符号的示例代码
- python预测子女身高_Python 孩子身高预测
- ArcGIS教程 - 附录 - ArcGIS快捷键
- 信息系统项目管理师论文范文(一)
- 论文解读: Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference
热门文章
- Delphi 与 DirectX 之 DelphiX(83): TDIB.FilterLine()、FilterRect();
- 不可错过的MSDN TV —— IronPython: Python on the .NET Framework (中)
- 西部数据app可导致Windows 和 macOS 提权
- 新型APT组织正在攻击全球的政府实体
- 提升开发者安全的七大可行实践
- 如何更好使用 ng-zorro-antd 图标
- 前端存储 (2) - sessionStorage ,localStorage
- request.getcontextPath() 详解(转)
- 重磅,企业实施大数据的路径
- 输入n求N*N矩阵,规定矩阵沿45度线递增