我有两个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
的类,反之亦然。 / p>
修改
所以我有两个按钮(比较两个人),最初,他们应该有相同的班级vote
。但我有jQuery代码,当用户点击按钮时,该类更改为voted
。现在,我想检查一下,当用户点击OTHER按钮(试图为第二个人投票)时,他们不能,因为已经有voted
类,或者他们已按下第一个按钮
我知道如果voted
存在,我可以检查整个页面,但是当用户点击他们投票的初始投票人时,我已经设置了一些检查,他们可以收回投票(这将是将div类更改回vote
)。
我的整个前提是:如果用户已经投票给某人,则不允许用户投票给对方。
很抱歉有很长的描述。
谢谢!
答案 0 :(得分:1)
我解决了我正在尝试做的事情
var voted = $(".voted").not($(this).parents(".voted")).attr("class");
这允许我检查类投票是否存在,但是它不会检查按下的$(this)是否存在。
答案 1 :(得分:0)
$(this).parent().prev().children('.button');
这会让你引用一个jQuery对象的引用,该对象包含父类的前一个兄弟的子类,其类为“button”。
答案 2 :(得分: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)
});
答案 3 :(得分: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"
});
});
这段代码对我来说很好。
答案 4 :(得分:0)
我不确定你想要实现什么,但如果你想做的就是在课堂之间切换,那么你可以使用toggleClass
$('.button').click(function(){
$(this).toggleClass('vote').toggleClass('voted');
});
您可以随时针对特定的班级名称(“投票”)进行测试,以获得其他班级(“投票”)。是否存在阻止您使用硬编码类名的任何内容?
答案 5 :(得分: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"
});
<强> DEMO 强>