如何通过js实现添加事件监听和移除事件监听

JavaScript09

如何通过js实现添加事件监听和移除事件监听,第1张

直接用js实现比较麻烦,不同版本的浏览器(主要是低版本的)支持的方法会不一样。

建议使用jquery实现:

添加事件例:

$("button").on("click", function(){

    console.log("clicked")

})

移除事件例:

$("button").off("click")

文档链接:http://api.jquery.com/on/

这个问题一般是疏忽的问题,通过getElementsByName获取到的是一个集合,而你循环删除的时候,把第一个元素,也就是obj[0]删除了之后,它后面的另一个元素会位置提升到第一个,这时候,循环过来之后,删除第2个元素obj[1],而这个元素已经实际的位置成了obj[0]所以他就找不到了,所以,循环应该这么写

<script type="text/javascript">

function del(){

var obj = document.getElementsByName("GoodsBrowsed")

for(var i = obj.length-1i>=0i--){

    obj[i].parentNode.removeChild(obj[i])

}

}

</script>

也就是从最后一个删,往前删除,这样才能删完

添加节点append;移除节点removeChild;移动节点:var sdds=document.getElementById;创建节点createTextNode();查找节点:document.getElementsByTagName。

其他方法:

创建新节点

createDocumentFragment() //创建一个DOM片段

createElement() //创建一个具体的元素

createTextNode() //创建一个文本节点

添加、移除、替换、插入

appendChild() //添加

removeChild() //移除

replaceChild() //替换

insertBefore() //插入

查找

getElementsByTagName() //通过标签名

getElementsByName() //通过元素的Name属性的值

getElementById() //通过元素Id,唯一性

实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制。