1.昨天内容复习
- 焦点事件
- 得到焦点onfocus
- 失去焦点onblur
- this关键字,指的是事件的调用者
- value,获取表单的内容
- className,添加类名
- innerHTML,修改元素内容
- focus(),自动获得焦点的方法
- select(),表单选择内容
2.for循环
复习回顾
3.获得元素的方式
- 通过Id获取元素,document.getElementById();
- 通过标签名获取元素,documnet.getElementsByTagName(),获取到的元素是多个,是一个伪数组;
- 通过for循环遍历所有元素
- 通过父级元素缩小范围之后再获取里面的元素
4.数组
- 创建数组:
- var arr=[1,2,3,4,5…];
- var arr2=new Array(1,2,3,4,5…)// 使用不多
- 通过下标(索引)来获取数组中元素,没有的元素返回undefined
- 遍历数组元素,for循环
隔行变色案例,鼠标经过高亮显示
注意:行内样式权重高于类名设置的样式。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
ul{
list-style: none;
}
li{
line-height:40px;
margin-top:10px;
border:1px solid #777;
padding-left:20px;
width:300px;
height:40px;
}
.bgc{
background-color:skyblue!important;
}
</style>
</head>
<body>
<ul>
<li>我是段落内容,请仔细阅读。</li>
<li>我是段落内容,请仔细阅读。</li>
<li>我是段落内容,请仔细阅读。</li>
<li>我是段落内容,请仔细阅读。</li>
<li>我是段落内容,请仔细阅读。</li>
<li>我是段落内容,请仔细阅读。</li>
<li>我是段落内容,请仔细阅读。</li>
<li>我是段落内容,请仔细阅读。</li>
<li>我是段落内容,请仔细阅读。</li>
<li>我是段落内容,请仔细阅读。</li>
<li>我是段落内容,请仔细阅读。</li>
<li>我是段落内容,请仔细阅读。</li>
</ul>
<script type="text/javascript">
var lis=document.getElementsByTagName("li");
for(var i=0;i<lis.length;i++){
if(i%2==0){
lis[i].style.backgroundColor="yellow";
}
lis[i].function(){
this.className="bgc";
}
lis[i].function(){
this.className="";
}
}
</script>
</body>
</html>
写一个函数,求数组的平均值
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script type="text/javascript">
function num(arr){
var sum=0;
var j=0;
for(var i=0;i<arr.length;i++){
if(parseInt(arr[i])!=0){
sum+=parseInt(arr[i]);
j++;
}
}
var num=sum/j;
return num;
}
var a=prompt("请输入要求平均数的数字,中间用逗号分隔");
for(var i=0;i<a.length;i++){
console.log(a[i]);
}
console.log(num(a));
</script>
</body>
</html>
精灵图实现九宫格布局
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
*{
margin:0;
padding:0;
}
ul{
list-style: none;
width:410px;
height:310px;
margin:100px auto;
border:1px solid #666;
padding-left:20px;
}
li{
display: block;
width:100px;
height:100px;
float:left;
text-align: center;
margin-bottom: 10px;
}
i{
display:block;
width:44px;
height:44px;
background:url(img/QQ图片20190326144407.png) no-repeat;
margin-top:10px;
margin-left:40px;
}
a{
text-decoration: none;
color:#999;
font-size:18px;
}
</style>
</head>
<body>
<ul>
<li>
<i></i>
<a href="">充话费</a>
</li>
<li>
<i></i>
<a href="">充话费</a>
</li>
<li>
<i></i>
<a href="">充话费</a>
</li>
<li>
<i></i>
<a href="">充话费</a>
</li>
<li>
<i></i>
<a href="">充话费</a>
</li>
<li>
<i></i>
<a href="">充话费</a>
</li>
<li>
<i></i>
<a href="">充话费</a>
</li>
<li>
<i></i>
<a href="">充话费</a>
</li>
<li>
<i></i>
<a href="">充话费</a>
</li>
<li>
<i></i>
<a href="">充话费</a>
</li>
<li>
<i></i>
<a href="">充话费</a>
</li>
<li>
<i></i>
<a href="">充话费</a>
</li>
</ul>
<script type="text/javascript">
var is=document.getElementsByTagName("i");
for(var i=0;i<is.length;i++){
is[i].style.backgroundPosition="0px "+(-43*i)+"px";// 空格不能少
// is[i].style.backgroundPositionY=(-43*i)+"px";// 只有Y方向变量改变
}
</script>
</body>
</html>
复选框带全选、反选、取消按钮
checked=true,选中;top不要用作变量名,是关键字,会报错。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div id="top1">
<button>全选</button>
<button>取消</button>
<button>反选</button>
</div>
<div id="bottom">
商品1:<input type="checkbox" /><br />
商品2:<input type="checkbox" /><br />
商品3:<input type="checkbox" /><br />
商品4:<input type="checkbox" /><br />
商品5:<input type="checkbox" /><br />
商品6:<input type="checkbox" /><br />
商品7:<input type="checkbox" /><br />
商品8:<input type="checkbox" /><br />
商品9:<input type="checkbox" /><br />
</div>
<script type="text/javascript">
var top1=document.getElementById("top1");
var bottom=document.getElementById("bottom");
var btns=top1.getElementsByTagName("button");
var inputs=bottom.getElementsByTagName("input");
btns[0].function(){
for(var i=0;i<inputs.length;i++){
inputs[i].checked=true;
}
}
btns[1].function(){
for(var i=0;i<inputs.length;i++){
inputs[i].checked=false;
}
}
btns[2].function(){
for(var i=0;i<inputs.length;i++){
if(inputs[i].checked==true){
inputs[i].checked=false;
}else{
inputs[i].checked=true;
}
}
}
</script>
</body>
</html>
京东搜索框
事件可以连写,..onpropertychange=function(){}。
IE6、7、8兼容的是onpropertychange。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
*{
margin:0;
padding:0;
position: relative;
}
#container{
width: 500px;
margin:100px auto;
}
#txt{
height:30px;
width:500px;
}
#label{
position: absolute;
top:5px;;
left:10px;
cursor: text;
}
</style>
</head>
<body>
<div id="container">
<input type="text" id="txt"/>
<label id="label" for="txt">默认商品</label>
</div>
<script type="text/javascript">
var txt=document.getElementById("txt");
var label=document.getElementById("label");
txt.function(){
label.style.color="#666";
}
txt.function(){
label.style.color="black";
}
txt.function(){
label.style.display="none";
if(txt.value==""){
label.style.display="block";
}
}
</script>
</body>
</html>