如何在javascript中没有任何内联函数调用的情况下获取元素id?

时间:2014-08-03 13:33:12

标签: javascript jquery this addclass 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>....

还有10个&#39; li&#39;在班级&#39; side-nav&#39; 我需要将图标类更改为“已选中”图标。对于&#39; a&#39;点击了元素。 我的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;
});

但是,&#39;这个&#39;出来是未定义的&#39;。如何更改我的函数以获取单击元素,而无需单独调用每个元素的函数。

1 个答案:

答案 0 :(得分:3)

你没有明显的理由混合使用jQuery和本机DOM调用。这只是不起作用:

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

但是,图书馆很容易:

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

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

类似地:

e=t.getElementsByTagName('a');

$(e)

可能工作,但我不确定;当然,编写

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