初识js(二)

2016-09-06  本文已影响0人  小周师傅

1.dom对象的innerText和innerHTML有什么区别?

2.elem.children和elem.childNodes的区别?

3.查询元素有几种常见的方法?

var elements = document.getElementsByClassName(names);

var elements = document.getElementsByClassName(names);

document.getElementsByClassName('red test');
var paras = document.getElementsByTagName("p");
// 假定有一个表单是<form name="x"></form>
var forms = document.getElementsByName("x");
forms[0].tagName // "FORM"

注意,在IE浏览器使用这个方法,会将没有name属性、但有同名id属性的元素也返回,所以name和id属性最好设为不一样的值

var el1 = document.querySelector(".myclass");
elementList = document.querySelectorAll(selectors);

querySelectorAll方法的参数,可以是逗号分隔的多个CSS选择器,返回所有匹配其中一个选择器的元素。

var matches = document.querySelectorAll("div.note, div.alert");//返回class属性是note或alert的div元素
var element = document.elementFromPoint(x, y);

4.如何创建一个元素?如何给元素设置属性?

var newDiv = document.createElement("div");

createElement方法的参数为元素的标签名,即元素节点的tagName属性。如果传入大写的标签名,会被转为小写。如果参数带有尖括号(即<和>)或者是null,会报错。

var newContent = document.createTextNode("Hello");
var docFragment = document.createDocumentFragment();

DocumentFragment对象是一个存在于内存的DOM片段,但是不属于当前文档,常常用来生成较复杂的DOM结构,然后插入当前文档。这样做的好处在于,因为DocumentFragment不属于当前文档,对它的任何改动,都不会引发网页的重新渲染,比直接修改当前文档的DOM有更好的性能表现。

5.元素的添加、删除?

添加

var newDiv = document.createElement("div");
var newContent = document.createTextNode("Hello");
newDiv.appendChild(newContent);
node.insertBefore(*newnode*,*existingnode*)
newDiv.replaceChild(newElement, oldElement);

删除

parentNode.removeChild(childNode);

6.DOM0 事件和DOM2级在事件监听使用方式上有什么区别?

<input id="myButton" type="button" value="Press Me" onclick="alert('thanks');" >

二是在JS写onlicke=function(){}函数

document.getElementById("myButton").onclick = function () { alert('thanks');}

缺点是,属性被用于存储作为事件处理程序的函数的引用,所以每个元素对于任何特定的事件类型,每次只能注册一个事件处理程序。

addEventListener(enentType,listener,useCapture) 
//第一个参数是事件名(如click)
//第二个参数是事件处理程序函数
// 第三个参数如果是true则表示在捕获阶段调用,为false表示在冒泡阶段调用

通过addEventListener添加的事件处理程序只能通removeEventListener移除,移除时参数与添加的时候相同,这就意味着刚才我们添加的匿名函数无法移除

7.attachEvent与addEventListener的区别?

参数 参数说明
element 事件名称,注意去掉事件前边的“on”,比如“onclick”要写成“click”,“onmouseover”要写成“mouseover”
listener 要绑定的事件监听函数,注意只写函数名,不要带括号
userCapture 事件监听方式,只能是true和false:true,采用capture(捕获)模式;false,采用bubbling(冒泡)模式。如无特殊要求,一般是false
参数 参数说明
element 要绑定事件的对象,及HTML节点
type 事件名称,注意加上事件前边的“on”,比如“onclick”和“onmouseover”,这是与addEventListener的区别
listener 要绑定的事件监听函数,注意只写函数名,不要带括号

8.解释IE事件冒泡和DOM2事件传播机制?

9.如何阻止事件冒泡? 如何阻止默认事件?

event.cancelBubble = true

2.DOM2

event.stopPropagation()
event.returnValue = false

2.DOM2

event.preventDefault()
上一篇 下一篇

猜你喜欢

热点阅读