autofocus
在移动版 Safari 上不工作
onmousemove和onmouseover的区别
onmousemove 是鼠标在元素上移动时触发,鼠标在元素上每移动一下就会触发一次。
onmouseover 是鼠标移入元素时触发一次,鼠标在元素上移动时不会触发,但是由于事件冒泡的关系,当鼠标移入元素内的子元素时也会触发
HTML <option> 标签的 value 属性
value 属性规定在表单被提交时被发送到服务器的值。
<option> 与 <option/> 之间的值是浏览器显示在下拉列表中的内容,而 value 属性中的值是表单被提交时被发送到服务器的值。
注释:如果没有指定 value 属性,选项的值将设置为 <option> 标签中的内容。
1 <select> 2 <option value="volvo">Volvo XC90</option> 3 <option value="saab">Saab 95</option> 4 <option value="mercedes">Mercedes SLK</option> 5 <option value="audi">Audi TT</option> 6 </select>
注意点:以字符串传输,所以去比较或者判断的时候,记得为其value加上“”双引号,特别是CASE “1”:
因为case是以全等符号去比较的,所以数据类型要一致。如果是case 1:就会出错;如果是等号(==)那么不会出问题,但最好不要这样做,避免混淆
1 function getData() { 2 var index = region.selectedIndex; 3 var index2 = product.selectedIndex; 4 var regionSelect = region.options[index].value; 5 var productSelect = product.options[index2].value; 6 var res = new Array(); 7 if (regionSelect === "1") { 8 for (i = 0; i < sourceData.length; i++) { 9 if (sourceData[i].region == "华北") { 10 switch (productSelect) { 11 case "1": 12 if (sourceData[i].product == "智能音箱") { 13 res[i] = sourceData[i]; 14 } 15 break; 16 case "2": 17 if (sourceData[i].product == "笔记本") { 18 res[i] = sourceData[i]; 19 } 20 break; 21 case "3": 22 if (sourceData[i].product == "手机") { 23 res[i] = sourceData[i]; 24 } 25 break; 26 default: 27 res[i] = sourceData[i]; 28 break; 29 } 30 } 31 }
提交表单的时候,提交的是value的值。value="0"与value="一月"其实都是表示一月,但是value的值不影响界面如何显示,在设计程序的时候完全可以就把“0”当做“一月”。也就是说后台获取到0的时候,其实就是选择的“一月”这一项。如果你要写成value="一月"也是可以的,只是后台用来接收这个数据的时候要用字符串来接收,而不是整型,这样就增加了程序的空间复杂度
setSelectionRange()用法
HTMLInputElement.setSelectionRange()方法用来设置<input>
元素当前选中的文本的开始和结束位置。
其接口定义如下:
inputElement.setSelectionRange(
selectionStart
,selectionEnd
,[optional] selectionDirection
);
其中:
- selectionStart:必选参数,选中的字符(串)在文本中的起始位置(包括该字符),number,大于等于0,小于等于
selectionEnd
。 - selectionEnd:必选参数,选中的字符(串)在文本中的结束位置(不包括该字符),number,大于等于
selectionStart
。 - selectionDirection:可选参数,标识是从前向后还是从后向前选中的,string,取值
backward
、forward
、none
。(较新的浏览器支持,暂时没发现有什么用处)
注意:
- 要想看到选中效果,必须要使
<input>
获得焦点。 - 如果selectionStart等于selectionEnd,则不出现字符(串)选中效果,但可使光标定位到selectionStart之前。
自带的focus用法
document.getElementById('inputid').focus();
autofocus 定义和用法
autofocus 属性规定当页面加载时 input 元素应该自动获得焦点。
如果使用该属性,则 input 元素会获得焦点。
1 <form action="demo_form.asp"> 2 First name:<input type="text" name="fname" autofocus="autofocus" /><br /> 3 Last name: <input type="text" name="lname" /><br /> 4 <input type="submit" /> 5 </form>
函数内return 之后的代码将不执行。
!= 在表达式两边的数据类型不一致时,会隐式转换为相同数据类型,然后对值进行比较.
!== 不会进行类型转换,在比较时除了对值进行比较以外,还比较两边的数据类型, 它是恒等运算符===的非形式.
js中的null代表不存在,在某些情况下和undefined定义一样,比如null==undefined返回的是true;而undefined这表示未定义;undefined是个类型,null是个object;然而''则表示具体的类型的值了;如果一个变量申明了未赋值,则类型未定义,这里判断变量==null会返回true;
根本区别在于变量是否已经赋值,即是否已经初始化
这里要清楚:null是个object类型,且值只有null
undefined是个undefined类型,值只有undefined
''是个String类型的值
那么这里null==undefined返回true
null===undefined返回false
null==''返回false
undefined==''返回false
var 声明的变量,作用域是当前 function
没有声明的变量,直接赋值的话, 会自动创建变量
但作用域是全局的.
//-----------------
function doSth() {
a = "AAA";
}
doSth(); // 执行一次 doSth
alert(a); // 可以看到 "AAA"
//-----------------
如果用了 var
//-----------------
function doSth() {
var a = "AAA";
}
doSth(); // 执行一次 doSth
alert(a); // 出错!!! 变量未定义, 因为 doSth 中声明的变量作用域只是 doSth 函数.
//-----------------
另外,如果 函数套函数,还会使情况变得更加复杂
--------------------------------------------------------
函数定义中,声明的函数参数作用域都是函数本身的
如果,在参数声明中出现 var , 属于语法错误
-
IE11没有attachEvent这个属性,那么我们可以添加一个meta标签来设置浏览器的默认兼容模式
通过在html的head标签中加入
<meta http-equiv="X-UA-Compatible" content="IE=10" />
这个meta标签来设置浏览器的默认兼容模式为ie10。
这样就可以通过使用
if(document.attachEvent){
alert("IE");
}else{
alert("其他");
}
这个语句来判断浏览器是不是IE浏览器
通过判断浏览器的类型可以写出兼容性的代码,避免写完页面之后兼容性差的问题。