1

我有两个 div 容器:

<!-- button1 -->
<div class="voted">
    <span>name</span>
    <div class="button">Vote</div>
</div>

<!-- button2 -->
<div class="vote">
    <span>name</span>
    <div class="button">Vote</div>
</div>

然后在使用jquery时:

$('.button').click(function(){
    // if button2 was clicked:
    var test = $(this).parent().attr("class"); // How do I obtain the other element?
    alert(test); // this should be outputted "voted"
});

我想使用类似$(this)功能的东西来获取另一个元素。我将如何获得“投票”?我这样做的原因是因为我有一个脚本,它会在两个按钮之间切换,所以当用户点击时button1,我希望他们获得类button2,反之亦然。

编辑

所以我有两个按钮(比较两个人),最初,他们应该有相同的 class vote。但是我有 jQuery 代码,当用户单击一个按钮时,该类更改为voted. 现在,我想检查一下,当用户单击“其他”按钮(尝试为第二个人投票)时,他们不能因为已经有voted课程,或者他们已经按下了第一个按钮。

我知道我可以检查我的整个页面是否voted存在,但我已经设置了一些检查,当用户点击他们投票的初始投票人时,他们可以收回投票(这会将 div 类更改回vote)。

我的整个前提是:如果用户已经投票给某人,则不允许用户投票给另一个人。

很抱歉描述太长了。

谢谢!

4

6 回答 6

1

我解决了我想做的事情

var voted = $(".voted").not($(this).parents(".voted")).attr("class");

这使我可以检查是否存在已投票的类,但它不会检查按下的 $(this) 是否存在。

于 2013-01-09T07:40:32.770 回答
0
$(this).parent().prev().children('.button');

这使您可以引用包含父级上一个兄弟姐妹的子级的 jQuery 对象,该对象具有类“按钮”。

于 2013-01-08T08:48:58.640 回答
0

你可以使用siblings方法。

$('.button').click(function(){
  var $this = $(this).parent();
  var c1 = $this.prop('class');
  var c2 = $this.siblings('div').prop('class');
  // console.log('class 1: ' + c1 + ', class 2: ' + c2)
});
于 2013-01-08T08:49:14.223 回答
0
$(function(){
        $('.button').click(function () {
            // if button2 was clicked:
            var test = $(this).parent().attr("class"); // How do I obtain the other element?
            alert(test); // this should be outputted "voted"
        });
    });

这段代码对我来说很好。

于 2013-01-08T08:51:09.857 回答
0

我不确定您到底想实现什么,但如果您想做的就是在类之间切换,那么您可以使用toggleClass

$('.button').click(function(){ 
   $(this).toggleClass('vote').toggleClass('voted'); 
});

您始终可以针对特定的类名('vote')进行测试以获取另一个类('voted')。有什么东西可以阻止你假设硬编码的类名吗?

于 2013-01-08T08:53:21.440 回答
0

看来你想上第一个 div 的课

$('.button').click(function(){
      var test = $('div:first').attr("class"); // this will give first div's class
      alert(test); // this should be outputted "voted"
    });

演示

于 2013-01-08T08:55:34.653 回答