使用Jquery变量来标识div类/ Id

时间:2011-07-10 10:42:41

标签: javascript jquery

我确信这个问题的答案很简单,我刚刚能够弄明白。

我有一个简单的点击功能,适用于点击列表中的任何链接。单击一个时,我希望它删除div上的一个类,该类与其中一个链接属性相关。 E.g:

// The link
<li><a href="#" title="example1">example1</a></li>

// The div
<div id="example1" class="selected"></div>

这是我尝试过的有点事情,但它不对:

$("ul.switcher a").click(function(e){
 e.preventDefault();
 $("#" + $(this().val).removeClass("selected");
});

任何帮助将不胜感激!如果有人也可以告诉我这样做的JavaScript相当于一个很好的奖金!

3 个答案:

答案 0 :(得分:3)

更改

$("#" + $(this().val).removeClass("selected");

$("#" + this.title).removeClass("selected");

这是有效的,因为原始DOM对象的title属性反映了“title”属性。 HTML5规范草案中的详细信息here和更成熟的DOM2 HTML规范中的here

答案 1 :(得分:3)

你很亲密:

$("ul.switcher a").click(function(e){
 e.preventDefault();
 $("#" + this.title).removeClass("selected");
});

对于这种事情,HTML5“数据 - ”属性约定可以非常方便。您可以按如下方式更改标记:

<li><a href="#" data-targetId="example1">example1</a></li>

然后在您的代码中,您可以使用jQuery“.data()”方法:

$("ul.switcher a").click(function(e){
 e.preventDefault();
 $("#" + $(this).data('targetId')).removeClass("selected");
});

这种技术可以避免“重载”其他属性,就像你使用“标题”一样。 (当然,这不一定是坏事,但有时你可能希望“标题”有意义,因为当鼠标放在元素上时它会显示出来。)

答案 2 :(得分:0)

试试这个, 在链接点击上调用以下javascript函数(也使用jquery),

     function removeClass()
     {
        if ( $('#example1').hasClass('selected') ) //Will check whether the div has the mentioned class.
        {
               $('#example1').removeClass('selected'); //This will remove the specified class from the div.
        } 
        else 
        {
          $('#example1').addClass('class1'); //This can be used to add a class to the div.
         }
      }

希望这会有所帮助......