js 两个ul 里的li name相同 点击调用函数相同 怎么判断我触发函数后更改的是第二个ui里的li样式

图片说明
这是两个不同ul里的li 我要点击时更改li 前面的其他节点
我怎么判断我点击下面这个li 更改下面li前面的子节点 。
现在点击下面的li 也是更改上面li的其他节点,换个name 就可以更改下面的。
但是换个name 下面li的CSS样式没了
图片说明

woshicaibi1
YZ丶Dys 我在上面的input里面写了个id 下面的写了个jd 点击下面的触发事件 返回的都是上面的id
8 个月之前 回复

4个回答

看你的add函数内怎么实现的呢。
按理说传入的this,就是当前的标签。
function add(obj)
{
alert($(obj).html());
}

woshicaibi1
YZ丶Dys 函数我重新编辑在上面了,刚学有点乱
8 个月之前 回复

这种??

<ul>
    <li onclick="test(this);">1</li>
    <li onclick="test(this);">2</li>
    <li onclick="test(this);">3</li>
    <li onclick="test(this);">4</li>
    <li onclick="test(this);">5</li>
</ul>
<ul>
    <li onclick="test(this);">11</li>
    <li onclick="test(this);">22</li>
    <li onclick="test(this);">33</li>
    <li onclick="test(this);">44</li>
    <li onclick="test(this);">55</li>
</ul>

<script type="text/javascript">
function test(e){
    var index=$(e).index();
    var html=$(e).parents("ul").find("li").eq(index).html();
    $(e).parents("ul").find("li").eq(index).css("font-size","32px");
    console.log(html);
}
</script>

qq_35235940
听楼一夜雨 回复YZ丶Dys: 那你按照这个原理写就行了,先找到父级ul,再去找对应的li
8 个月之前 回复
woshicaibi1
YZ丶Dys 对,我点击的是 下面这个ul的li 修改的是我上面的li
8 个月之前 回复

原生js有个事件对象,使用.target就能获取到点击的标签元素了,如下

function f1(ev){
    ev = ev || window.event;
    console.log(ev.target);

}

通常这种情况的点击事件是通过事件委托方式进行的,通过父级的click事件委托到子级,如我生成一个list,每个item的点击事项:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    .actived {
      color: red;
    }
    li {
      cursor: pointer
    }
  </style>
</head>
<body>
  <ul id="ul">
  </ul>
  <script>
    let ul = document.getElementById('ul');
    let dom = '';
    for(let i = 1; i < 11; i++) {
      dom+= '<li>' + '标题' + i + '</li>'
    }
    ul.innerHTML = dom
    ul.addEventListener('click', handleClick, false)
    function handleClick(e) {
      let current = e.target
      if(current.tagName.toLowerCase() == 'li') {
        let lis = ul.getElementsByTagName('li')
        for(let i = 0; i < lis.length; i++) {
          lis[i].className = ''
        }
        current.className = 'actived'
      }
      return false
    }
  </script>
</body>
</html>

图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问