1.案例:阻止超链接默认跳转行为
2.案例:相册
3.案例:列表隔行变色
4.案例:列表鼠标进入高亮显示(鼠标进入和鼠标移出事件)
5.显示和隐藏二维码
6.通过name属性获取元素(表单标签才有那么属性)
7.根据类样式的名字获取元素
8.其他获取元素的方式
9.案例:div的高亮显示(鼠标进入边框高亮)
10.案例:模拟搜索框(获取焦点和失去焦点)
11.封装innerText和textContent
12.innerText和innerHTML的区别
13.自定义属性
14.案例:tab切换
1.案例:阻止超链接默认跳转行为 <--返回目录
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>标题</title>
</head>
<body>
<!-- 阻止超链接默认跳转行为,第一种写法-->
<a href="http://www.baidu.com" onclick="return false;">百度</a><br/>
<!-- 阻止超链接默认跳转行为,第二种写法-->
<a href="http://www.baidu.com" onclick="return fun();">百度</a>
<script type="text/javascript">
function fun(){
return false;
};
</script>
</body>
</html>
2.案例:相册 <--返回目录
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>标题</title>
<style type="">
ul li{
list-style: none;
float: left; /*将li元素拖出*/
}
ul li a{
//display: inline-block;
text-decoration: none; /*去除a标签下划线样式*/
}
ul li a img{
160px;
height: 180px;
}
</style>
</head>
<body>
<h2>画廊</h2>
<ul id="imagegallery">
<li><a href="images/1.jpg" title="图片1"><img src="images/1-small.jpg"></a></li>
<li><a href="images/2.jpg" title="图片2"><img src="images/2-small.jpg"></a></li>
<li><a href="images/3.jpg" title="图片3"><img src="images/3-small.jpg"></a></li>
<li><a href="images/4.jpg" title="图片4"><img src="images/4-small.jpg"></a></li>
<!-- 清除浮动 -->
<div style="clear:both;"/>
</ul>
<div><img src="" id="imgId"/></div>
<script type="text/javascript">
var aEles = document.getElementsByTagName("a");
for(var i=0;i<aEles.length;i++){
aEles[i].onclick=function(){
document.getElementById("imgId").src=this.href;
return false;//禁止a标签的默认跳转行为
};
}
</script>
</body>
</html>
3.案例:列表隔行变色 <--返回目录
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>标题</title>
</head>
<body>
<input type="button" id="btn" value="点我,列表隔行变色"/>
<div style=" 300px">
<ul id="ulId">
<li>红楼梦</li>
<li>三国演义</li>
<li>水浒传</li>
<li>西游记</li>
</ul>
</div>
<script type="text/javascript">
var eles = document.getElementById("ulId").getElementsByTagName("li");
document.getElementById("btn").onclick=function(){
for(var i=0;i<eles.length;i++){
if(i%2==0){
eles[i].style.backgroundColor="#ddd";
}else{
eles[i].style.backgroundColor="#aaa";
}
}
};
</script>
</body>
</html>
4.案例:列表鼠标进入高亮显示(鼠标进入和鼠标移出事件) <--返回目录
鼠标进入时间onmouseover
鼠标移出事件onmouseout
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>标题</title>
</head>
<body>
<div style=" 300px">
<ul id="ulId">
<li>红楼梦</li>
<li>三国演义</li>
<li>水浒传</li>
<li>西游记</li>
</ul>
</div>
<script type="text/javascript">
var eles = document.getElementById("ulId").getElementsByTagName("li");
for(var i=0;i<eles.length;i++){
eles[i].onmouseover=function(){
this.style.backgroundColor="pink";
};
eles[i].onmouseout=function(){
this.style.backgroundColor="";
};
}
</script>
</body>
</html>
5.显示和隐藏二维码 <--返回目录
需要用到的知识:
- 鼠标进入和鼠标移出事件
- 使用类样式class进行显示或隐藏
- 鼠标进入小二维码时,大二维码显示,鼠标移出时,二维码隐藏。
6.通过name属性获取元素(表单标签才有这个属性) <--返回目录
* getElementsByName("name属性的属性值")
7.根据类样式的名字获取元素 <--返回目录
* getElementsByClassName("类样式class的属性值")
8.其他获取元素的方式 <--返回目录
* 根据id选择器/类别选择器获取元素
<input type="button" id="btn" class="red"/>
var ele = document.querySelector("#btn");
var ele = document.querySelector(".red");
var ele = document.querySelector("li");//只会获取第一个li标签
* 根据class类别选择器/标签选择器获取元素
var eles = document.querySelectorAll(".cls");
var eles = document.querySelectorAll("li");
9.案例:div的高亮显示(鼠标进入边框高亮) <--返回目录
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>标题</title>
<style type="text/css">
div{
200px;
height: 150px;
background-color: blue;
border: 10px solid blue;/*设置border的颜色为背景色blue*/
float: left;
margin-left: 10px;
}
</style>
</head>
<body>
<div></div>
<div></div>
<div></div>
<script type="text/javascript">
var eles = document.getElementsByTagName("div");
for(var i=0;i<eles.length;i++){
eles[i].onmouseover=function(){
this.style.border="10px solid pink"; //将原来设置的border的颜色由背景色blue变成pink
};
eles[i].onmouseout=function(){
this.style.border="";//将border的颜色恢复为背景色
};
}
</script>
</body>
</html>
10.案例:模拟搜索框(获取焦点和失去焦点) <--返回目录
获取焦点事件onfocus
失去焦点事件onblur
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>标题</title>
<style type="text/css">
input{
color: #aaa;
}
</style>
</head>
<body>
<input type="text" id="txt" value="请输入"/>
<script type="text/javascript">
var ele = document.getElementById("txt");
//注册获取焦点事件
ele.onfocus=function(){
if(this.value=="请输入"){
this.value="";
this.style.color="black";
}
};
//注册失去焦点事件
ele.onblur=function(){
if(this.value.length==0){
this.value="请输入";
this.style.color="#aaa";
}
};
</script>
</body>
</html>
11.封装innerText和textContent <--返回目录
兼容代码
//设置任意的标签中间的任意文本内容 function setInnerText(element,text){ if(typeof element.textContent == "undefined"){ element.innerText=text; }else{ element.textContent=text; } } //获取任意标签中间的文本内容 function getInnerText(element){ if(typeof element.textContent=="undefined"){ return element.innerText; }else{ return element.textContent; } }
12.innerText和innerHTML的区别 <--返回目录
* 设置
- document.getElementById("divId").innerText="<p>文本</p>";
** <p>文本</p>被当成纯文本
- document.getElementById("divId").innerHTML="<p>文本</p>";
** <p>文本</p>被当成HTML代码
* 获取
- innerText可以获取标签中间的文本内容,但是标签中如果还有标签,那么最里面的标签的文本内容也能获取
- innerHTML获取标签中间的【html代码内容】。
13.自定义属性 <--返回目录
* 不能通过document.getElementById("liId").score;获取属性的值,
* 通过document.getElementById("liId").getAttribute("score");来获取自定义属性的值
<ul>
<li score="100" id="liId">张三的成绩</li>
</ul>
* 获取li标签,动态添加自定义属性score和值 ele.setAttribute("score",20);
* 移除自定义属性 ele.removeAttribute("score");
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>标题</title>
<style type="text/css">
ul{
list-style-type: none;
cursor: pointer;
}
</style>
</head>
<body>
<ul>
<li score="100" id="liId">张三的成绩</li>
</ul>
<script type="text/javascript">
//获取li标签,动态添加自定义属性score和值
var ele = document.getElementById("liId");
ele.setAttribute("score",20);//动态添加自定义属性score和值
ele.onclick=function(){
alert(ele.getAttribute("score"));//获取自定义属性score的值
};
</script>
</body>
</html>
14.案例:tab切换 <--返回目录
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>标题</title>
<style type="text/css">
* {
padding: 0;
margin: 0;
}
span{
display: inline-block;
height: 50px;
font: 20px/50px 微软雅黑;
background-color: #eee;
line-height: 50px;/*行高*/
padding:0 20px;
cursor: pointer;
}
.bd{
335px;
height: 150px;
background-color: #ccc;
}
li.current{
display: inline-block;
}
li{
display: none;
}
</style>
</head>
<body>
<div id="box" class="box" >
<div class="hd" >
<span style="background-color: #ccc">娱乐</span>
<span>新闻</span>
<span>体育</span>
<span>综合</span>
</div>
<div class="bd">
<ul>
<li class="current">我是娱乐模块</li>
<li>我是新闻模块</li>
<li>我是体育模块</li>
<li>我是综合模块</li>
</ul>
</div>
</div>
<script type="text/javascript">
//获取所有的span标签
var sapnEles = document.getElementsByTagName("span");
//获取所有的li标签
var liEles = document.getElementsByTagName("li");
for(var i=0;i<sapnEles.length;i++){
//在鼠标点击事件之前,先保存索引
sapnEles[i].setAttribute("index",i);
//给每个span标签注册鼠标单击事件
sapnEles[i].onclick=function(){
//设置所有的span标签的背景色为#eee
for(var j=0;j<sapnEles.length;j++){
sapnEles[j].style.backgroundColor="#eee";
}
//设置所有的li标签的display属性值为none
for(var k=0;k<liEles.length;k++){
liEles[k].className="";
}
//设置当前点击的span标签的背景色为#ccc
this.style.backgroundColor="#ccc";
//获取当前点击的span标签的index的值
var index = this.getAttribute("index");
//alert(index);
//设置当前点击的span标签对于的li标签的display属性值为inline-block
liEles[index].className="current";
};
}
</script>
</body>
</html>

---