如何获得元素id点击没有任何内联函数调用在javascript

how to get element id on click without any inline function call in javascript?

本文关键字:任何内 函数调用 javascript 元素 何获得 id      更新时间:2023-09-26

我需要改变元素的类点击为'selected'这是我的html文件的一部分:

<div class="side-nav white-nav" id="sidenavblade">
 <ul>
      <span id="trigger-1" class="menu-trigger"><li>
        <a href="<?php echo URL::to('/')."/initiatives" ?>" class="">
          <span id="trigger-1" class="menu-trigger" >INITIATIVES <i class="icon initiatives"></i>
        </a>
      </li></span>....
在side-nav类中又有10个'li'我需要改变图标的类为"选定"的"a"元素点击。My js:
var select=false;
t=document.getElementById('sidenavblade');
e=t.getElementsByTagName('a');
$(e).click(function(){
  if(select==true){
     $('.selected').removeClass('selected');
  }
  $(this).getElementsByClassName('icon ').addClass('selected');
  select=true;
});

但是,'this'结果是'undefined'。如何更改函数以使元素被单击,而无需分别为每个元素调用该函数?

您莫名其妙地混合使用jQuery和本机DOM调用。这行不通:

 $(this).getElementsByClassName('icon ').addClass('selected');

然而,使用库很容易:

 $(this).find('.icon').addClass('selected');

DOM API返回一个NodeList,你不能像使用jQuery对象那样使用它。

同样:

e=t.getElementsByTagName('a');
$(e)

可能有效,但我不确定;当然,直接写

更简单
$('a').click(function() {
  // ...