我确信这个问题的答案很简单,我刚刚能够弄明白。
我有一个简单的点击功能,适用于点击列表中的任何链接。单击一个时,我希望它删除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相当于一个很好的奖金!
答案 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.
}
}
希望这会有所帮助......