选择元素并将类[selected]添加到其他元素,同时从所有其他元素中删除[selected]类

时间:2014-07-26 11:16:28

标签: jquery addclass removeclass

我试图自己找到答案,但没有设法得到任何可以帮助我解决问题的结果。造成这种情况的原因可能是我无法很好地表达我的问题以找到答案,或者没有意识到我在我面前得到了答案而无法理解答案。

由于我的许多谷歌搜索网站出现了,我想在经过两天的搜索后,我应该注册并自己提问。

我做了一个快速的jsfiddle,它基本上解决了我的问题,但代码非常重复,可能适用于几个元素,它会以指数方式炸毁我的网站。

我的jsfiddle:http://jsfiddle.net/3Unhe/1/

答案可能很简单,但我基本上对javascript / jquery一无所知。

我更好地解决这个问题的想法是用简单的英语: 如果#id点击 从所有.container id中删除class .selected 将class .selected添加到.container#id

html:
<div class="titel1">titel</div>
<div class="foto1">foto</div>
<div class="name1">name</div>
<br />
<a href="javascript:void(0);" class="titel">
selected titel
</a>
<br />
<a href="javascript:void(0);" class="foto">
selected foto
</a>
<br />
<a href="javascript:void(0);" class="name">
    selected name
</a>

jQuery:
$('.titel').click(function () {
    $('.name1').removeClass('selected');
    $('.foto1').removeClass('selected');
    $('.titel1').addClass('selected');
});

$('.foto').click(function () {
    $('.titel1').removeClass('selected');
    $('.name1').removeClass('selected');
    $('.foto1').addClass('selected');
});

$('.name').click(function () {
    $('.foto1').removeClass('selected');
    $('.titel1').removeClass('selected');
    $('.name1').addClass('selected');
});


css:
.selected {
font-weight:bold;
}

感谢任何帮助。无论你是完全解决它还是提供一个链接/想法来帮助我自己解决它。我不是在这里发帖,因为我很懒,但我无法解决它,我不知道如何更好地表达我的问题,以便自己找到答案。

即使我使用了jquery,我也可以使用javascript。

非常感谢。

Freubau

2 个答案:

答案 0 :(得分:1)

尝试:

$('.titel1, .foto1, .name1').on("click",function(){

   $("."+$(this).attr("class").substr(0, $(this).attr("class").length-1))
   .addClass("selected")
   .siblings()
   .removeClass("selected");

});

这将查找被点击元素具有相同类名的元素,但没有它的最后一个字符。

F.e。:点击元素.titel1

  • 添加&#34; selected&#34; class to .titel

  • 删除&#34; selected&#34;来自它的兄弟姐妹(.foto.name

答案 1 :(得分:0)

这里你去=&gt; http://jsfiddle.net/3Unhe/4/

$('.titel1, .foto1, .name1').click(function(){
    $(this).siblings('.selected').removeClass('selected');
    $(this).addClass('selected');
});