我无法让这一小段代码发挥作用。我基本上试图获得点击的ahref的兄弟,但它只返回被点击的元素本身(使用console.log()
来测试它)。
$('.script-vote').click(function(e) {
e.preventDefault();
var href = $(this);
href.siblings('.script-vote') //This doesn't work
.removeClass('active');
href.closest('.script-vote') //This doesn't work
.removeClass('active');
});
我的HTML:
<div class="one-half t-center">
<a href="..." class="script-vote up" title="Upvoten">
<i class="fa fa-thumbs-o-up"></i>
<span class="score"><?=$post->getUpVotes()?></span>
</a>
</div>
<div class="one-half t-center">
<a href="..." class="script-vote down" title="Downvoten">
<i class="fa fa-thumbs-o-down"></i>
<span class="score"><?=$post->getUpVotes()?></span>
</a>
</div>
因此,当我点击.script-vote.up
元素时,我想删除active
类.script-vote.down
。提前谢谢。
答案 0 :(得分:1)
&lt; a&gt; HTML中的元素没有任何兄弟姐妹。但他们的父母呢。确保它们包含在父母div中:
<div class="voting-container">
<div class="one-half t-center">
<a href="..." class="script-vote up" title="Upvoten">
<i class="fa fa-thumbs-o-up"></i>
<span class="score"><?=$post->getUpVotes()?></span>
</a>
</div>
<div class="one-half t-center">
<a href="..." class="script-vote down" title="Downvoten">
<i class="fa fa-thumbs-o-down"></i>
<span class="score"><?=$post->getUpVotes()?></span>
</a>
</div>
</div>
您可以使用jQuery作为示例来引用以下JavaScript:
$(".script-vote").click(function(){
var otherVotingButton = $(this).parent().siblings(".one-half").first().find(".script-vote");
otherVotingButton.css("background-color","red");
otherVotingButton.href="#";
otherVotingButton
.off() //remove original event handler
.click(function() { alert("you already voted!");});
});
获取父母的兄弟,然后获得脚本投票&lt; a&gt;里面的元素。