DOM & BOM
HTML是一棵树,DOM是操纵这棵树的方法。DOM的节点包括元素节点、属性节点和文本节点。
元素节点(如:p 、div 等各种标签),属性节点(如:href、src 等),文本节点即标签所包含的文本内容。
监听器 addEventListener (event, fn, boolen),移除监听器 removeEventListener (event, fn, boolen)
【注意!移除时所有参数要一致!且事件名称不能带 “on” 】 此方法不适用IE9以下。
IE9适用方法: attachEvent (event, fn) 【注意!事件名称要带 “on” 】
兼容写法:
1 2 3 4 5 6
| if(object.addEventListener){ object.addEventListener(); } else{ object.attachEvent(); }
|
window.onload函数
window.onload = function(){} 为文档全部加载后再执行的函数,可以加匿名函数也可以加非匿名函数。但是不能以这种方式为事件绑定多个事件处理函数,例如:
1 2
| window.onload = function a(){}; window.onload = function b(){};
|
但是可以用以下方式:
1 2 3 4 5 6 7 8 9 10
| window.onload=function(){ function a(){ document.getElementById("bg").style.backgroundColor="#F90"; } function b(){ document.getElementById("bg").style.width="200px"; } a(); b(); }
|
也可以用addEventListener为事件绑定多个事件处理函数:
1 2 3 4 5 6 7 8
| window.addEventListener("load",bg,false); window.addEventListener("load",changeW,false); function bg(){ document.getElementById("bg").style.backgroundColor="#F90"; } function changeW(){ document.getElementById("bg").style.width="200px"; }
|
CSS选择器
后代选择器(如:div p 指以 div 为父元素的 p 元素)
【注意!有关后代选择器有一个易被忽视的方面,即两个元素之间的层次间隔可以是无限的。
例如,如果写作 ul em ,这个语法就会选择从 ul 元素继承的所有 em 元素,而不论 em 的嵌套层次多深。】
因此,ul em 将会选择以下标记中的所有 em 元素:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <ul> <li>List item 1 <ol> <li>List item 1-1</li> <li>List item 1-2</li> <li>List item 1-3 <ol> <li>List item 1-3-1</li> <li>List item ```bash<em>1-3-2</em></li> <li>List item 1-3-3</li> </ol> </li> <li>List item 1-4</li> </ol> </li> <li>List item 2</li> <li>List item 3</li> </ul>
|
子元素选择器 (如: h1 > strong 指作为 h1 元素子元素的所有 strong 元素 )
例如:
1
| h1 > strong {color:red;}
|
这个规则会把第一个 h1 下面的两个 strong 元素变为红色,但是第二个 h1 中的 strong 不受影响:
1 2
| <h1>This is <strong>very</strong> <strong>very</strong> important.</h1> <h1>This is <em>really <strong>very</strong></em> important.</h1>
|
相邻兄弟选择器 ( 紧接在另一个元素后的元素,而且二者有相同的父元素,可以使用相邻兄弟选择器 )
例如:h1 + p 指选择紧接在 h1 元素后出现的段落,h1 和 p 元素拥有共同的父元素
1 2 3 4 5 6 7 8 9 10 11 12
| <div> <ul> <li>List item 1</li> <li>List item 2</li> <li>List item 3</li> </ul> <ol> <li>List item 1</li> <li>List item 2</li> <li>List item 3</li> </ol> </div>
|
在上面的片段中,div 元素中包含两个列表:一个无序列表,一个有序列表,每个列表都包含三个列表项。这两个列表是相邻兄弟,列表项本身也是相邻兄弟。不过,第一个列表中的列表项与
第二个列表中的列表项不是相邻兄弟,因为这两组列表项不属于同一父元素(最多只能算堂兄弟)。
请记住,用一个结合符只能选择两个相邻兄弟中的第二个元素。请看下面的选择器:
1
| li + li {font-weight:bold;}
|
上面这个选择器只会把列表中的第二个和第三个列表项变为粗体。第一个列表项不受影响。
sort方法排序
参阅
http://www.webkaka.com/tutorial/js/2015/070314/
oninput实现实时监听输入框变化
在元素上绑定oninput事件
1 2
| <input type="text" id="a" oninput="change()" /> <div>您输入的值是:<span id="b">尚无录入</span></div>
|
1 2 3 4 5
| function change(){ var input = document.getElementById("a"); var span = document.getElementById("b"); span.innerHTML = input.value; }
|
几个原生函数
map、forEach、some、every、filter、reduce函数 ,
参阅
https://eczn.coding.me/blog/%E6%B4%BB%E7%94%A8%E5%8E%9F%E7%94%9F%E6%96%B9%E6%B3%95%E8%A7%A3%E5%86%B3%E6%95%B0%E7%BB%84%E9%97%AE%E9%A2%98.html