cari

Rumah  >  Soal Jawab  >  teks badan

Isu delegasi acara JS

<!DOCTYPE html>
<html lang="zh">
<head>

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

<code><meta charset="UTF-8">

<title>Title</title>

<style type="text/css">

    li{

        list-style: none;

        cursor: pointer;

    }

</style>

<script type="text/javascript">

    window.onload = function(){

        var Ul = document.getElementById("ul");

        var Li = Ul.getElementsByTagName("li");

        Ul.onclick = function(ev){

            var ev = ev || window.event;

            var target = ev.target || ev.srcElement;

            if(target.nodeName.toLowerCase() == "li"){

                var index = 0;

                for(var i=0;i<Li.length;i++){

                    if(Li[i]===target){

                        index=i;

                    };

                }

                if(index>=0){

                    alert('索引是'+index);

                }

            }

 

        }

 

    }

 

</script></code>

</kepala>
<badan>

<ul id="ul">

1

2

3

4

<code><li>首页</li>

<li>新闻</li>

<li>娱乐</li>

</code>

</ul>

</body>
</html>

Saya ingin bertanya, adakah cara yang lebih mudah untuk mendapatkan indeks menggunakan perwakilan acara?

大家讲道理大家讲道理2812 hari yang lalu600

membalas semua(1)saya akan balas

  • 習慣沉默

    習慣沉默2017-06-08 11:05:05

    children转换为Array,然后直接调用indexOf. (Tanpa mengambil kira keserasian...)

    1

    2

    3

    4

    5

    <code class="html"><ul id="ul">

      <li>1</li>

      <li>2</li>

      <li>3</li>

    </ul></code>

    1

    2

    3

    4

    5

    6

    <code class="javascript">const ul = document.querySelector('#ul')

    const children = Array.prototype.slice.call(ul.children)

    ul.onclick = (ev) => {

      const target = ev.target;

        console.log('current index', children.indexOf(target))

    }</code>

    Berikut adalah contoh

    balas
    0
  • Batalbalas