小黄练编程 发表于 2022-3-31 18:30:18

为何报错?

本帖最后由 小黄练编程 于 2022-3-31 19:57 编辑

<!DOCTYPE html>
<html>
        <head>
                <meta charset="utf-8">
                <title></title>
                <style>
        ul li{
                position:relative;
                background-color:red;
                height:40px;
        }
        button{
                position:absolute;
                top:0;
                right:0;
                display:inline-block;
                /* width:100px; */
               
        }
        </style>
        </head>
        <body>
                <textarea id='text'>请在此留言</textarea>
                <input id='ipt' type='button'value='发布留言'>
                <ul>
                        <li>你好!<button>删除</button></li>
                        <li>你好!<button>删除</button></li>
                        <li>美好的一天<button>删除</button></li>
                </ul>
                <script>
                var text=document.querySelector('#text');
                var ipt=document.querySelector('#ipt');
      var ul=document.querySelector('ul');
               
                text.onfocus=function(){
                        if(this.value=='请在此留言'){
                                this.value='';
                        }
                }
                text.onblur=function(){
                        if(this.value==''){
                                this.value='请在此留言';
                        }
                }
                ipt.onclick=function(){
                        //创建好一个新节点
                        var lili=document.createElement('li');
                        if(text.value!==''){
                        lili.innerHTML=text.value;
                       
                        //将创建好的新节点添加到ul的第一个子元素前面。
                        ul.insertBefore(lili, ul.children);
                       
                        //执行完前面的操作后将textarea的value值改为'';
                        text.value='';
                        }
                }
                //给li里的按钮绑定删除事件
                varlis=ul.children;
                vardeleat=lis.children;//这里不可以写成lis,因为lis代表一个数组。
                var deleat=[];
                for(var i=0;i<lis.length;i++){
                        deleat=lis.children;
                                lis.setAttribute('index',i);
                          deleat.onclick=function(){
                               
//那个按钮点击,删除相应的li,即ul里的第几个元素。
                                ul.removeChild(ul,children.index]);
                        }
                }
               
               
                </script>
        </body>
</html>

ba21 发表于 2022-3-31 18:33:28

代码上全,方便人家调试。
你太看得起大家了,反正我是光看看不出问题来。

小黄练编程 发表于 2022-3-31 19:49:26

ba21 发表于 2022-3-31 18:33
代码上全,方便人家调试。
你太看得起大家了,反正我是光看看不出问题来。

整好了

小黄练编程 发表于 2022-3-31 19:57:43

ba21 发表于 2022-3-31 18:33
代码上全,方便人家调试。
你太看得起大家了,反正我是光看看不出问题来。

刚改了

ba21 发表于 2022-3-31 20:23:08

小黄练编程 发表于 2022-3-31 19:49
整好了

不知道你要实现什么,前面回复你了闭包中无法直接传i进去,你偏偏还是要这么传个i进去。
用的的代码修改处,自已参考。
                //给li里的按钮绑定删除事件
                varlis=ul.children;
                for(var i=0;i<lis.length;i++){
                        var deleat=lis.children;
                        lis.setAttribute('index',i); // 给li添加属性index                              
                        deleat.onclick=function(){
                            j = this.parentNode.getAttribute('index'); // 获取li属性index的值
                            lis.removeChild(lis.children);
                        }
                }

小黄练编程 发表于 2022-3-31 23:02:13

ba21 发表于 2022-3-31 20:23
不知道你要实现什么,前面回复你了闭包中无法直接传i进去,你偏偏还是要这么传个i进去。
用的的代码修改 ...

大哥,咋才能学好前端啊,需要注意些什么,以后几年那些技术会过时,例如,两三年后可以放心用新特性吗,不用考虑兼容性的问题。{:5_111:}

ba21 发表于 2022-3-31 23:30:31

小黄练编程 发表于 2022-3-31 23:02
大哥,咋才能学好前端啊,需要注意些什么,以后几年那些技术会过时,例如,两三年后可以放心用新特性吗, ...

慢慢学

小黄练编程 发表于 2022-3-31 23:44:55

ba21 发表于 2022-3-31 23:30
慢慢学

{:5_111:}
页: [1]
查看完整版本: 为何报错?