关于display:none;和id特性的一些需要注意的地方
关注点一:
display:none;一旦用于某个元素,那个这个元素在页面中就不再占据位置。
visibility:hidden;用于某个元素时,这个元素还会占据位置。
关注点二:
即使使用了display:none;只是在dom树中其不再显示了,但是,文件中还有这个元素(废话!)。
关注点三:
我们知道一旦某一个元素拥有id特性,那么这个id名就会成为全局变量被调用,值得注意的是,这个id只能有一个! 如果一个页面中有两个id,那么我们直接使用id名称并关联事件时,将不再生效(这时可以根据控制台的地址此时的button为undefined)。如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF8">
<title>获取验证码的倒计时</title>
<style>
.first_button{
background-color: red;
}
</style>
</head>
<body>
<button id="button" class="first_button">这是第一个</button>
<button id="button">这是第二个</button>
<script>
button.onclick = function () {
alert("d");
}
</script>
</body>
</html>
关键点四:
在上述观点下,我们需要知道,如果使用document.getElementBtId()就可以获取到元素,但永远只能获取到第一个。
关注点五:
上述代码显然不能alert。但是也别天真地以为只要你将其中一个元素display:none;就可以!! 因为document.getElementById()方法从dom中获取元素中才不会理你的display特性呢! 而是只能获取其中的一个,结果就是还是不行,如下所示:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF8">
<title>获取验证码的倒计时</title>
<style>
.first_button{
display: none;
}
</style>
</head>
<body>
<button id="button" class="first_button">这是第一个</button>
<button id="button">这是第二个</button>
<script>
var button = document.getElementById("button");
console.log(button.className);
</script>
</body>
</html>
总结:如果页面比较复杂,尽量不要直接使用id作为全局变量来调用,以防止出错(即一个都获取不到), document.getElementById还可以获取到一个呢!!
关于display:none;和id特性的一些需要注意的地方的更多相关文章
- id特性
每一个HTML元素都可以附带id特性,id特 <!DOCTYPE html> <!-- To change this license header, choose License H ...
- 需要使用id内省方法--responsesToSelector: 的两个地方
第一个: 当从数组中取出对象,并且需要执行某个方法时,最好使用responsesToSelector:判断该对象是否可以 执行该方法.因为在OC数组中,取出的对象都是 id 类型的. 第二个: 在MV ...
- position跟display、margin collapse、overflow、float这些特性相互叠加后会怎么样?
这是寒冬大神提出的一个题目,刚开始看到这题的时候完全不知道从什么地方回答起好,题目内容比较广泛,找不到针对点.后来我觉得这个题目应该能拆成几个点来回答:1.'display'.'position' 和 ...
- Jquery 设置style:display 通过ID隐藏区域
$("#id").css('display','none'); $("#id").css('display','block'); 或 $("#id&q ...
- 2012 T-SQL 新特性 and O2O项目
SQL Server 2012 T-SQL 新特性 NoSQL之HBase 9月初淘宝飞芃做了一个关于HBase的分享,讲的激情飞扬,让听众收益匪浅,现做下简单总结. HBase是一个NoSQL数 ...
- 「小程序JAVA实战」小程序视图之细说wx:key列表高级特性(16)
转自:https://idig8.com/2018/08/09/xiaochengxu-chuji-16/ wx:key的高级特性.这个很重要,因为在app上经常有上拉,下拉加载,我们如果不使用这个特 ...
- 从PowerDesigner表字段的Name到EF实体类属性的Display Name(根据PowerDesigner生成EF实体类中文注释和验证元数据)
第一步:将PowerDesigner表字段的中文Name填入Comment中:工具-Execute Commands-Edit/Run Script... '********************* ...
- 从append追加的<tr>里传ID参数给js函数
今天这个小问题几乎把我整崩溃 $.each(data.list, function (index, item) { i++; shenhe = "待审核"; tixing = it ...
- 被废了的display:box弹性盒模型
这几天在研究弹性布局,看书中写的是display:box,结果在chrome浏览器中是正常的,想着移动端大部分浏览器也是webkit内核的应该也没啥问题,结果确实没问题,但仔细一看,高度呢?好吧,严重 ...
随机推荐
- 深入理解java虚拟机(二)HotSpot Java对象创建,内存布局以及访问方式
内存中对象的创建.对象的结构以及访问方式. 一.对象的创建 在语言层面上,对象的创建只不过是一个new关键字而已,那么在虚拟机中又是一个怎样的过程呢? (一)判断类是否加载.虚拟机遇到一条new指令的 ...
- Awk使用方法简介
==================AWK=================== AWK简介:awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得 ...
- thinkjs 框架图
- Oracle数据表转换为Shapefile(二)
在上一篇博文<Oracle数据表转换为Shapefile(一)>中详细描述了一种基于Oracle数据表生产Shapefile的技术方法,本文同样以详细图解的方式描述一种更便捷的方法来完成同 ...
- java(一)IntelliJ和eclipse环境下的Hello World
1. IntelliJ环境下的Hello World 1. 启动IntelliJ IDE,选择File->New->Project 选择Java如果没有出现Project SDK,则选择N ...
- jquery实现简单瀑布流
瀑布流这个概念一直不是很理解,看到别人可以实现,自己弄了很久还是不能实现就很纠结.瀑布流这根刺就一直扎在我心里,一次偶然的机会看到别人实现了瀑布流,我想我是不是也应该再继续把这个未完成的任务画一个圆满 ...
- C# 设置textedit只能输入英文数字下划线,并且只能以英文开头(正则表达式)
this.textEdit1.Properties.Mask.EditMask = @"[a-zA-z][a-zA-Z0-9_]*";
- c++调用c#写的DLL
c++调用c#写的DLL: 此文章演示了建立c#的dll: c++建立工程,引入dll: 不能解决的问题: 指定dll的路径,在代码里面直接写 #using "xxx.dll" 必 ...
- codeforces|CF1054D Changing Array
因为数据范围是2e5级别的,所以我们考虑用异或前缀和来处理区间的异或情况.(比如说a包括b,那么我们通过异或可以知道b对于a的补区间的信息) 之后因为对任意\(a_i\)进行取反操作,会改变它和它之后 ...
- Centos6.9下PXE安装centos 7
一.简介 这篇文章是无kickstart下安装centos7的,本篇大部分内容同我另外一篇文章相似,只是Centos7 中的isolinux.cfg有一些不太一样需要说明一下. https://www ...