javascript中通过className灵活查找元素 例如我们要把根据class来进行修改样式
一、背景:一个表单中,要修改一些li中有class=box的样式,将它的background设置为red红色。
一般的做法是我们可以先找到父级元素 ,然后由父级元素找到所有相关tagName,最后,来一个if判断,如果class属性为box,则修改之
var oUl = document.getElementById("ul1"); //加上它的上级元素,可以避免我们筛选出许多无用的节点出来
var aLi = oUl.getElementsByTagName("li");
html代码:
<ul id="ul1">
<li class="box"></li>
<li></li>
<li class="box"></li>
<li></li>
<li class="box"></li>
</ul>
一般做法的代码:
<script>
var oUl = document.getElementById("ul1"); //加上它的上级元素,可以避免我们筛选出许多无用的节点出来
var aLi = oUl.getElementsByTagName("li");
var i = 0; for(i =0; aLi.length; i++){
if(aLi[i].className == "box"){
aLi[i].style.background = "#FF9900";
}
}
</script>
为了代码重用,将其封装成一个小函数,存入代码库,以便以后可以使用。
思路:查找className需要两个参数,一个数父级元素、一个是指定的class。通过父级元素,可以找到父级元素下的所有元素节点,有了这些元素节点呢,我们就可以获取到父级元素下的所有元素,最后通过if判断,并结合循环,把这些元素的class是指定值的遍历出来。
通过className灵活查找元素 函数封装版
<!--
作者:1107989194@qq.com
时间:2014-04-13
描述:通过className灵活查找元素 函数封装版
-->
<script>
function getByClass(oParent,sClass){
var aEle = oParent.getElementsByTagName('*'); //获取父级元素下的所有元素
var aResult = new Array();
for(var i =0; i<aEle.length; i++){
if(aEle[i].className == sClass){
aResult.push(aEle[i]);
}
}
return aResult;
} window.onload = function(){
var oUl = document.getElementById('ul1');
var aBox = getByClass(oUl,'box');
//获取到所有的class=box的属性后,进行修改 你想要的样式
for(var i =0; i<aBox.length; i++){
aBox[i].style.background = 'red'; }
} </script>
javascript中通过className灵活查找元素 例如我们要把根据class来进行修改样式的更多相关文章
- 使用 JavaScript 中的 document 对象查找 HTML 元素,实现“登录”按钮的高亮特效 鼠标悬浮于“登录”按钮时,按钮高亮显示;
查看本章节 查看作业目录 需求说明: 使用 JavaScript 中的 document 对象查找 HTML 元素,实现"登录"按钮的高亮特效 鼠标悬浮于"登录" ...
- 【跟着子迟品 underscore】JavaScript 中如何判断两个元素是否 "相同"
Why underscore 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. 阅读一些著名框架类库的源码,就好像和一个个大师对 ...
- JavaScript中的window对象的属性和方法;JavaScript中如何选取文档元素
一.window对象的属性和方法 ①setTimeout()方法用来实现一个函数在指定毫秒之后运行,该方法返回一个值,这个值可以传递给clearTimeout()用于取消这个函数的执行. ②setIn ...
- javascript中DOM获取和设置元素的内容、样式及效果
getElementById() 根据id获取dom元素 没有找到则返会Null <!DOCTYPE html> <html lang="en"> < ...
- javascript中for循环和标签元素赋值问题总结
<!DOCTYPE html><html><body><p>点击下面的按钮,将代码块循环五次:</p><button onclick= ...
- 在Javascript中数组对象(json)里元素相同的操作
1.数组对象元素相同,分组显示 let arry = [ { expensedate: '2018/09/29', amount: 1, type: '交通费' }, { expensedate: ...
- javascript中定义事件的三种方式
在javascript中,可以为某个元素指定事件,指定的方式有以下三种: 1.在html中,使用onclick属性 2.在javascript中,使用onclick属性 3.在javascipt中,使 ...
- javascript中的数据结构
Javascript中的关键字 abstract continue finally instanceof private this boolean ...
- javascript中区分鼠标单击和拖动事件
在javascript中,一般的DOM元素如div,都有onmousedown.onmousemove.onmouseup这3个鼠标事件. <div id="div1" on ...
随机推荐
- [記錄用]python py2app 檔案批次重新命名
demo.py 主要作用為 將同目錄下 *.mp4 檔案批次重新命名 例如: aaa001.mp4 ---重新命名為--> 001.mp4 aaa002.mp4 ---重新命名為--> 0 ...
- 【转】ant命令总结
http://feiyeguohai.iteye.com/blog/1295922 ant命令总结 1 Ant是什么? Apache Ant 是一个基于 Java的生成工具. 生成工具在软件开发中用 ...
- 定位 - MapKit - 基本使用
/** * Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Co ...
- 23个.NET开源项目
Castle是.NET里走过了三年的开源框架,下载地址如:http://www.castleproject.org/index.html ,当然如果你是从事过JAVA开发并用过spring,hiber ...
- 第一次写Makefile文件
test.c文件内容 #include <stdio.h> int main(int argc, char const *argv[]) { printf("hahahah\n& ...
- JVM 学习笔记
1. JAVA类分为三类: 1.1 系统类 (用系统类加载器加载bootstrap ClassLoader) 1.2 扩展类 (用扩展类加载器加载Ext ClassLoader) 1. ...
- 机器学习的数学基础(1)--Dirichlet分布
机器学习的数学基础(1)--Dirichlet分布 这一系列(机器学习的数学基础)主要包括目前学习过程中回过头复习的基础数学知识的总结. 基础知识:conjugate priors共轭先验 共轭先验是 ...
- ABAP打开TCODE
CALL FUNCTION 'TH_CREATE_MODE' EXPORTING transaktion = 'ZGNBWD001' EXCEPTIONS max_session ...
- 如何把关联性的告警智能添加到 Nagios 上?(2)
上节回顾 对于许多 IT 和运维团队来说,Nagios 既是一个福音也是一个诅咒.一方面,Naigos 在 IT 应用的工作领域中,给予了你可以实时查看告警数据的可能性:但是另一方面,Nagios 也 ...
- Inline Hook NtQueryDirectoryFile
Inline Hook NtQueryDirectoryFile 首先声明这个是菜鸟—我的学习日记,不是什么高深文章,高手们慎看. 都总是发一些已经过时的文章真不好意思,几个月以来沉迷于游戏也是时候反 ...