JS的document.all函数使用示例
JS的document.all函数虽然被document.getElement......代替,但是在使用中还是较为常见,下面为大家详细介绍下具体的使用示例:
一:
document.all是页面内所有元素的一个集合。例如:
document.all(0)表示页面内第一个元素
二:
document.all可以判断浏览器是否是IE
if(document.all){
alert("is IE!");
}
三:
也可以通过给某个元素设置id属性(id=aaaa),然后用document.all.aaaa调用该元素
四:案例
代码1:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<input name="aaa" value="111">
<input id="bbb" value="222">
<script>
console.log(document.all.aaa.value) //根据name取value
console.log(document.all.bbb.value) //根据id取 value
</script>
</body>
</html>
代码2:
但是常常name可以相同(如:用checkbox取用户的多项爱好的情况) ;
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<input name="aaa" value="111">
<input name="aaa" value="222">
<input id="bbb" value="bbb">
<script>
console.log(document.all.aaa[0].value) //最终显示a1
console.log(document.all.aaa[1].value) //最终显示a2
console.log(document.all.bbb[0].value) //最终会报错
</script>
</body>
</html>
代码3:
理论上一个页面中的id是互不相同的,如果出现不同tags有相同的id,document.all.id 就会失败,就象这样:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<input id="aaa" value="111">
<input id="aaa" value="222">
<script>
console.log(document.all.aaa.value)
</script>
</body>
</html>
代码4:
对于一个复杂的页面(代码很长,或者id是由程序自动产生),或着一个javascript初学者写的程序,很有可能出现两个tags有相同id的情况。为了编程的时候不出错,我推荐这样的写法:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<input id="aaa" value="aaa1">
<input id="aaa" value="aaa2">
<input name="bbb" value="bbb1">
<input name="bbb" value="bbb2">
<input id="ccc" value="ccc1">
<input name="ddd" value="ddd1">
<script>
console.log(document.all("aaa",0).value);
console.log(document.all("aaa",1).value);
console.log(document.all("bbb",0).value);
console.log(document.all("bbb",1).value);
console.log(document.all("ccc",0).value);
console.log(document.all("ddd",0).value);
</script>
</body>
</html>
?
JS的document.all函数使用示例的更多相关文章
- JS的document.links函数使用示例
? <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title&g ...
- JS的document.images函数使用示例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- JS的document.anchors函数使用示例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- js原生:封装document.getElementByClassName()函数
//接口封装:封装document.getElementByClassName()函数function getElementsByClassName (cName,domTag,root) {//该函 ...
- ASP.NET前台JS与后台CS函数如何互相调用
摘要: 在实际的Web开发中,我们可能会常常遇到后台调用前台JS代码或者前台JS调用后台代码的情况.今天就把比较实用的前后台相互调用的方法总结出来和大家分享. 在实际的Web开发中,我们可能会常常遇到 ...
- 【Mocha.js 101】钩子函数
前情提要 在上一篇文章<[Mocha.js 101]同步.异步与 Promise>中,我们学会了如何对同步方法.异步回调方法以及 Promise 进行测试. 在本篇文章中,我们将了解到 M ...
- 多个$(document).ready()函数的执行顺序问题,(未解决)
今天遇到了一个问题: jQuery获取不了动态添加的元素,我使用的是append添加的.寻求了帮助,得到解决方案: 在文件开头写上这样一段代码来获取,写在$(document).ready()里面. ...
- js两种定义函数、继承方式及区别
一:js两种定义函数的方式及区别 1:函数声明: function sayA() { alert("i am A"); } 2:函数表达式: var sayB = function ...
- WebView中Js与Android本地函数的相互调用
介绍 随着Html5的普及,html在表现力上不一定比原生应用差,并且有很强的扩展兼容性,所以越来越多的应用是采用Html与Android原生混合开发模式实现. 既然要实现混合开发,那么Js与Andr ...
随机推荐
- 如何使用maven进行avro序列化
maven导入avro: <dependency> <groupId>org.apache.avro</groupId> <artifactId>avr ...
- Python学习(六) —— 函数
一.函数的定义和调用 为什么要用函数:例如,计算一个数据的长度,可以用一段代码实现,每次需要计算数据的长度都可以用这段代码,如果是一段代码,可读性差,重复代码多: 但是如果把这段代码封装成一个函数,用 ...
- php第二天 开始连接数据库
php连接数据库有三种方法,分别是mysqli面向对象,mysqli面向过程,pdo. 1.查了资料,最终选择则了mysqli面向过程的方式,运行效率应该要高一些. 代码如下 <?php $se ...
- Fstring
题目描述 一个只包含A,B,C三种字符的字符串,如果其中有连续的3个由A,B,C各一个组成,则称为Fstring. 例如:BAACAACCBAAA就是,而AABBCCAABB则不是. 你的任务就是计算 ...
- 51Nod1675 序列变换 数论 莫比乌斯反演
原文http://www.cnblogs.com/zhouzhendong/p/8665675.html 题目传送门 - 51Nod1675 题意 给定序列$a,b$,让你求满足$\gcd(x,y)= ...
- BZOJ3295 [Cqoi2011]动态逆序对 分治 树状数组
原文链接http://www.cnblogs.com/zhouzhendong/p/8678185.html 题目传送门 - BZOJ3295 题意 对于序列$A$,它的逆序对数定义为满足$i< ...
- day76 auth模块 用户验证,
概要: form组件回顾: (1) 创建form组件对应的类,比如LoginForm (2) views.login: if get请求: form_obj=LoginForm() return re ...
- TF:利用TF的train.Saver将训练好的variables(W、b)保存到指定的index、meda文件—Jason niu
import tensorflow as tf import numpy as np W = tf.Variable([[2,1,8],[1,2,5]], dtype=tf.float32, name ...
- VMware5.5-添加数据中心,集群及主机
首先介绍下硬盘的三种设置格式,这个要搞清楚 虚机硬盘的三种格式 厚置备延迟置零 厚置备,分配10g空间,虚拟机没开机时就分配了: 延迟置零,没开机之前只分配空间,里面的数据不抹零,当开机写入数据时再抹 ...
- 关于java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to 实体类
由于业务逻辑的复杂,有些sql语句写法hql不支持,所以hibernate查询直接用了sql原生查询,由于数据结果根据四个表查询出来,所以无法使用方法.addEntity(XXXXXXX.class) ...