Day3

仿淘宝搜索框引入 IE 678 兼容问题:

  普通浏览器:  oninput          检测用户表单输入内容

  IE浏览器 678: onpropertychange     检测用户表单输入内容

  最终用H5的标签解决:

    placeholder=”内容”;   写入在input标签内即可.

 

子绝父相

 

数组:

  声明数组:

    1 var arr = [1,2,3,4];

    2 var arr = new Array[1,2,3,4];

  使用数组:

    arr[0]; 获取第一个数组元素.

  遍历数组:

    1 for(var i = 0; i<arr.length:i++){

      console.log(arr[i]);

  }

    ps:传统方式遍历,太多重复  影响性能.

    

    2 for(var i = 0; len=arr.length; i<len;i++){

      console.log(arr[i]);

  }

              ps:推荐方式,性能较好,去除重复,在执行for循环时已计算出长度直接进行比较即可.

 

隔行变色:

  .current{

  }

 

   !important :  权限最大 用于提高某个元素的优先级使用. 一般用于冲突或者被元素值覆盖的情况下,放在元素最后面即可.

 

  .current : 作为一个自定义类,  用于自定义一类的元素值,方便指定使用该元素设置值.

  使用: obj.className = “类名”;  即可.

 

 

  ps:

    由于隔行变色遍历了所有的li元素内容,因为要实现鼠标移入操作进行更改被移入的行( 某个li ),所以不能使用 遍历完以后的结果, 所以这里必须使用this来代表当前的对象来进行改变当前元素的元素值.

  code:

    

  //当鼠移入的时候通过类名植入改变元素值

              lis[i].onmouseover = function(){

        this.className = "current";

    }

 

 

字符相连:

  input里的value值是字符型

 

  运算符中, ‘+’ 号外, 其余都可以正常进行运算,‘+’号很多时候充当字符连接的作用, 如果需要进行+法运算 需要进行强转.

    1  parseInt   parseFloat

    2  Number(“需要运算的内容”);

  组合连接:

    目的是为了解决变动式的参数值.

    比如更改精灵图的坐标:

      var iis = document.getElementById("iconsprite").getElementsByTagName("i");

        for(var i=0;i<iis.length;i++) {

           iis[i].style.backgroundPosition ="0 "+(-i*25)+"px";

    }

 

      "0 "+(-i*25)+"px";

        解读:

           坐标 0  +  0*25 + px = 0,0 px

            var iis = document.getElementById("iconsprite").getElementsByTagName("i");

        用法:

          文档的某个元素ID的元素类指向iis变量.

          一般用作某个ID下的某个标签, 类似 ul 下的所有li.  

 

全选 取消和反选:

  1 要改变checkbox 的值需要的是获取 input 元素 然后改变checked 的值为布尔值 ( true/false)即可

    2 传统方式实现;

三元运算符方式实现:
  obj[i].checked = value; (value作为形参传递)  

  例:

    obj[i].checked == true ? obj[i] = false : obj[i].checked = true;

 

 

变量和属性:

  区别:  

    变量:独立存在, 自由

    属性:有对象的,属于对象的,唯一的

 

排他思想:

  代码:

      

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
	<title> </title>

	<style>
	.aa{
		background-color:pink; 
	}
	</style>


<script>
	window.onload =  function(){
		var btns = document.getElementsByTagName("button");
		for(var i = 0;i<btns.length;i++)
		{
			btns[i].onclick = function()
			{
				for(var j = 0;j<btns.length;j++)
				{
					btns[j].className = "";
				}
				this.className = "aa";
			}
		}
}
</script>
</head>
<body>
	<button>变色</button>
	<button>变色</button>
	<button>变色</button>
	<button>变色</button>
	<button>变色</button>
</body>
</html>

 

 

 

  解读:

    第一个循环作用先遍历出所有的button元素,然后再嵌套一个循环获取所有的元素,目的是为了清除元素的className,也就是重置一遍.然后当点击事件触发一次的时候清空一遍,然后给当前(this)点击的元素进行加入className 以达到排他的作用.

弹出索引号:

  btns[i].index = i;

 

    解读:

    就是在遍历的时候把i<obj.length 的值赋值给obj.index ,这样obj就存在索引号,然而就可以拿这个索引号做其他事情,比如主流网站上的侧边栏显示大的分类内容,   : JD TB

    ...

 

Tab 栏切换:

posted @ 2016-07-27 00:26  宁谧  阅读(140)  评论(0)    收藏  举报