jQuery的DOM操作

2017-09-08  本文已影响0人  李奔

用了一下this,浏览器就被我写崩了。。

$("ul").click(function(){
        //console.log(this);
        $(this).clone(true).appendTo("ul");
})

上面复制的是一个ul元素,然后多克隆几遍,子子孙孙无穷尽也。崩。
当然如下所写,可以针对被点击的<li>进行克隆

$("ul li").click(function(){
        //console.log(this);
        $(this).clone(true).appendTo("ul");
})

实现登陆框的忘记密码;



用JS实现上述点击复制功能

1.实现$('ul li')的选择器功能。人家得到的是极其类似数组的Object{},我得到了可怜的HTMLCollection.对此无法使用childNoes,有个item()方法也无啥用。毕竟

    var ele1 = document.getElementsByTagName('ul')[1];
    var ele2 = document.getElementsByTagName('ul').item(1);
    console.log(ele1 == ele2)  //true

那么,继续,document.getElementsByTagName('ul')[0].childNodes返回了一个包含空白文本(运行在firefox)节点和<li>元素节点的NodeList.
无论是HTMLCollection,NodeList(好吧,它俩其实也是数组),还是将其遍历push到空数组,一旦绑定click事件,都显示:
TypeError: XXX.addEventListener is not a function
可见事件要绑定在对象上,那么怎样将数组转换为对象?
$('ul li')获取的是一个Object{},里面的节点还被自动从零开始编号了。怎样生成自动编号的Object?

上一篇下一篇

猜你喜欢

热点阅读