search

Home  >  Q&A  >  body text

javascript - removeChild()出现语法错误

请看第33行,给新添加的li元素绑定删除事件,提示语法错误,为什么呢?谢谢
cn("deletes")[0].addEventListener("click",function(){$("outer_wrap").removeChild(this.parentNode)});

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

<code><body>

<button id="adds">添加</button>

<button id="delete">删除</button>

<ul id="outer_wrap">

<li>

<input type="text" value="标题1"><input type="text" value="链接">

<button>submit</button>

<button class="deletes">delete</button>

</li>

<li>

<input type="text" value="标题2"><input type="text" value="链接">

<button>submit</button>

<button class="deletes">delete</button>

</li>

</ul>

<script>

/*dom操作方法*/

function $(id){

return document.getElementById(id);

}

function cls(element){

return document.getElementsByTagName(element);

}

function cn(element){

return document.getElementsByClassName(element);

}

/*添加li元素*/

function add_li(){

    var newli = document.createElement("li");

    $("outer_wrap").insertBefore(newli,cls("li")[0]);

    cls("li")[0].innerHTML="<li><input type='text' value='标题2'><input type='text' value='链接'><button>submit</button><button class='deletes'>delete</button></li> ";

/***这里********/

/***这里********/

    /*给新添加的li元素绑定删除事件*/

    cn("deletes")[0].addEventListener("click",function(){$("outer_wrap").removeChild(this.parentNode)});

 /***这里********/

 /***这里********/

}

/*移除li*/

function remove_li(){

    $("outer_wrap").removeChild(this.parentNode)

}

/*给删除按钮绑定移除事件*/

function bind_del(){

    for(i=0;i<2;i++)

    {

        cn("deletes")[i].addEventListener("click",remove_li);

    }

}

bind_del();

/*绑定添加li事件*/

$("adds").addEventListener("click",add_li);

 

</script></code>

天蓬老师天蓬老师2906 days ago816

reply all(2)I'll reply

  • 迷茫

    迷茫2017-04-11 10:38:51

    1

    2

    3

    4

    <code> cls("li")[0].innerHTML="<li><input type='text' value='标题2'><input type='text'          value='链接'><button>submit</button><button class='deletes'>delete</button></li> ";

     这句有问题,你创建了一个li元素还往里面写多了一个li..

      cls("li")[0].innerHTML="<input type='text' value='标题2'><input type='text'          value='链接'><button>submit</button><button class='deletes'>delete</button> ";

      去掉就行了</code>

    reply
    0
  • 高洛峰

    高洛峰2017-04-11 10:38:51


    你这写的不对,ul里套了两层li,this.prarentNode是li 里的li,所以不对,把cls("li")[0].innerHTML="<input type='text' value='标题2'><input type='text' value='链接'><button>submit</button><button class='deletes'>delete</button> ";去掉,另外cn("deletes")[0].addEventListener()改为newli.addEventListener()。获取class是动态的

    reply
    0
  • Cancelreply