找到下一个元素并删除类

时间:2014-05-06 19:27:55

标签: jquery html

当用户从选择框中选择一个选项时,我想删除范围内链接上的类(span class =“vote-btns”)(select class =“songSelection_input”)

<div class="jquery-selectbox jquery-custom-selectboxes-replaced" style="width: 545px;">
    <div class="jquery-selectbox-moreButton"></div>

    <div class="jquery-selectbox-list jquery-custom-selectboxes-replaced-list" style="width: 540px; height: 7em; display: none;">
        <span class="jquery-selectbox-item value- item-0">PICK YOUR FAVORITE MOMENT...</span>
        <span class="jquery-selectbox-item value-VoiceAngelFromMontgomery item-1">Angel From Montgomery</span>
        <span class="jquery-selectbox-item value-VoiceWhenWillIBeLoved item-2">When Will I Be Loved</span>
    </div>

    <span class="jquery-selectbox-currentItem">When Will I Be Loved</span>

    <select name="songSelection_amclaughlin" class="songSelection_input" id="select-amclaughlin" style="display: none;">
        <option value="">PICK YOUR FAVORITE MOMENT...</option>
        <option value="VoiceAngelFromMontgomery">Angel From Montgomery</option>
        <option value="VoiceWhenWillIBeLoved">When Will I Be Loved</option>
        <option value="VoiceTheClimb">The Climb</option>
        <option value="VoiceABrokenWing">A Broken Wing</option>
        <option value="VoiceAngelOfTheMorning">Angel Of The Morning</option>
        <option value="VoiceYouLie">You Lie</option>
    </select>
</div>

<span class="vote-btns">
  <a href="#" class="button fb grey">vote</a>
  <a href="#" class="button tw grey">vote</a>
</span>

我试图在改变时触发这个

$('.songSelection_input').change(function() {
  $(this).next('span.vote-btns').find('a.button').removeClass('grey');
});

我不知道选择框(它是动态的)和投票btns跨度之间有多少跨度,所以我知道为什么下一个('span')不起作用,但我想指定下一个span.vote -btns可以胜任,但事实并非如此。

更新:我应该把它作为我的html但不包括,以简化我的问题。兄弟姐妹最初修复了我的问题,但我意识到我使用的jquery selectbox插件注入了html(span jquery selectbox项目并隐藏了选择框)

当我禁用selectbox jquery插件时,它可以正常工作:http://info.wsisiz.edu.pl/~suszynsk/jQuery/demos/jquery-selectbox/

http://jsfiddle.net/vkaCB/11/

2 个答案:

答案 0 :(得分:2)

您需要遍历DOM一级,然后找到兄弟姐妹。 .closest()方法可以提供帮助。试试这个:

$('.songSelection_input').change(function() {
    $(this).closest('div').siblings('span.vote-btns').find('a.button').removeClass('grey');
});

DEMO: http://jsfiddle.net/vkaCB/12/

答案 1 :(得分:0)

尝试使用.siblings()

$('.songSelection_input').change(function() {
  $(this).siblings('span.vote-btns').find('a.button').removeClass('grey');
});

DEMO