记录一些笔记~

 

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,取值backwardforwardnone。(较新的浏览器支持,暂时没发现有什么用处)

注意:

  • 要想看到选中效果,必须要使<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浏览器

    通过判断浏览器的类型可以写出兼容性的代码,避免写完页面之后兼容性差的问题。

原文地址:https://www.cnblogs.com/Joe-and-Joan/p/10083592.html