JavaScript学习笔记4之 ByClass&json
一、通过class获取标签
var out=document.getElementsByClassName(‘out’);
IE 6 7 8 不支持 getElementsName
是否有办法既能通过class获取标签
又没有兼容问题 ?
首先获取全部的标签,
用for循环遍历到所有类名相同的标签,
遍历的顺序放到数组里,
最后获得一个有相同类名的数组。
两种遍历方法:
一种是全局遍历的方法:只要类名相同的都放进数组
另一种是局部遍历的方法,在局部遍历相同的类。
实例如下:
页面布局:
<div id="box1">
<div class="con">
<span>我是span标签111</span>
</div>
<div class="con">
<span>我是span标签222</span>
</div>
<div class="con">
<span>我是span标签333</span>
</div>
</div>
<div id="box2">
<div class="con">
<span>我是span标签444</span>
</div>
<div class="con">
<span>我是span标签555</span>
</div>
</div>
全局获取:
/*全局获取*/
function byClass1(oClass){//对于全局获取封装成函数
var tags=document.all?document.all:document.getElementsByTagName('*');//获取全部的标签
var arr=[];//创建数组
for (var i = 0; i < tags.length; i++) {//for循环遍历
if (tags[i].className==oClass) {
arr.push(tags[i]);//把类名相同的放在一个数组里
};
};
return arr;
}
var cons=byClass1('con');//调用全局函数,传入参数(所要遍历的类名)
alert(cons.length);//测试
alert(cons[3].innerHTML);//测试
局部获取:
/*局部获取*/
function byClass2(parentID,oClass){//对于局部获取封装成函数
var parent=document.getElementById(parentID);//获得局部的ID
var tags=parent.all?parent.all:parent.getElementsByTagName('*');//不同处:获取特定ID下的所有标签
var arr=[];
for (var i = 0; i < tags.length; i++) {
if (tags[i].className==oClass) {
arr.push(tags[i]);
};
};
return arr;
}
var cons=byClass2('box1','con');//调用局部函数,传入参数(特定的ID名,所要遍历的类名)
alert(cons.length);//测试
alert(cons[2].innerHTML);//测试
二、json
json是一种轻量级的数据交换格式,是 JavaScript 原生格式,是理想的数据交换格式。
1、json对象
json对象以“{”开始 , 以“}”结束,每个“名称”后跟一个“:”(冒号),‘名:值' 对 之间运用 “,”(逗号)分隔。
var json1={ 'name' : '小丽' , 'sex' : '女' , 'age' : '22' } ;
2、json字符串
所谓json字符串,是指该字符串变量的值与json的格式相同,但是不是json对象。
var json2="{ 'name' : '小丽' , 'sex' : '女' , 'age' : '22' }" ;
3、json使用
var json1={ 'name' : '小丽' , 'sex' : '女' , 'age' : '22' } ;
alert( json1.name ); // 弹出 '小丽'
4、json字符串转换为json对象
var json2="{ 'name' : '小丽' , 'sex' : '女' , 'age' : '22' }";
运用 eval( )函数转换
例如:
var json3=eval( '('+json2+')' ) ;
alert( json3.name ); // 弹出 '小丽'
5、json循环
普通for循环
var arr=[2,4,6];
for (var i=0; i<arr.length; i++){
alert(arr[i]); //2 4 6
}
json循环只能用 for in
var jsn={‘a’:8,‘b’:8,‘c’:28};
for (var i in jsn){
alert(jsn[i]); //8 18 28
}
i → json的key , jsn[i] → 对应key的值
JavaScript学习笔记4之 ByClass&json的更多相关文章
- Spring MVC 学习笔记11 —— 后端返回json格式数据
Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...
- JavaScript学习笔记[0]
JavaScript学习笔记[0] 使用的是廖雪峰JavaScript教程. 数据类型 Number 表示数字,不区分浮点整形. === 比较时不转化数据类型. == 反之. NaN与任何值都不想等, ...
- Java程序猿的JavaScript学习笔记(汇总文件夹)
最终完结了,历时半个月. 内容包含: JavaScript面向对象特性分析,JavaScript高手必经之路. jQuery源代码级解析. jQuery EasyUI源代码级解析. Java程序猿的J ...
- Java程序猿的JavaScript学习笔记(8——jQuery选择器)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- Java程序猿JavaScript学习笔记(2——复制和继承财产)
计划和完成在这个例子中,音符的以下序列: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaSc ...
- Java程序猿的JavaScript学习笔记(3——this/call/apply)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- Java程序猿JavaScript学习笔记(4——关闭/getter/setter)
计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScr ...
- Java程序猿JavaScript学习笔记(14——扩大jQuery UI)
计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScr ...
- javascript学习笔记(四) Number 数字类型
数字格式化方法toFixed().toExponential().toPrecision(),三个方法都四舍五入 toFixed() 方法指定小数位个数 toExponential() 方法 用科学 ...
随机推荐
- 完美解决CodeSmith无法获取MySQL表及列Description说明注释的方案
问题描述: CodeSmith是现在比较实用的代码生成器,但是我们发现一个问题: 使用CodeSmith编写MySQL模板的时候,会发现一个问题:MySQL数据表中的列说明获取不到,也就是column ...
- LeetCode - Two Sum
Two Sum 題目連結 官網題目說明: 解法: 從給定的一組值內找出第一組兩數相加剛好等於給定的目標值,暴力解很簡單(只會這樣= =),兩個迴圈,只要找到相加的值就跳出. /// <summa ...
- DDD设计中的Unitwork与DomainEvent如何相容?
最近在开发过程中,遇到了一个场景,甚是棘手,在这里分享一下.希望大家脑洞大开一起来想一下解决思路.鄙人也想了一个方案拿出来和大家一起探讨一下是否合理. 一.简单介绍一下涉及的对象概念 工作单元:维护变 ...
- mono -图片处理
这篇文章中您将了解到以下内容 保存Bitmap WebClient文件上传 向服务端传递数据 保存Bitmap 做移动端开发,图片上传下载是最普通的需求了. 在mono for android中按照资 ...
- 从零开始,DIY一个jQuery(3)
在前两章,为了方便调试,我们写了一个非常简单的 jQuery.fn.init 方法: jQuery.fn.init = function (selector, context, root) { if ...
- Nodejs之MEAN栈开发(七)---- 用Angular创建单页应用(下)
上一节我们走通了基本的SPA基础结构,这一节会更彻底的将后端的视图.路由.控制器全部移到前端.篇幅比较长,主要分页面改造.使用AngularUI两大部分以及一些优化路由.使用Angular的其他指令的 ...
- ASP.NET Web API Model-ActionBinding
ASP.NET Web API Model-ActionBinding 前言 前面的几个篇幅把Model部分的知识点划分成一个个的模块来讲解,而在控制器执行过程中分为好多个过程,对于控制器执行过程(一 ...
- 页面中调用系统常用的对话框需要用到的classid
■打开■ <input name=Button onClick=document.all.WebBrowser.ExecWB(1,1) type=button value=打开> < ...
- Java中isAssignableFrom的用法
class1.isAssignableFrom(class2) 判定此 Class 对象所表示的类或接口与指定的 Class 参数所表示的类或接口是否相同,或是否是其超类或超接口.如果是则返回 tru ...
- Python学习--03变量类型
变量赋值 Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创 ...