所以我有几个带有“answers_total”类的div,其中包含五个带有“answer”类和data-answer属性的div。
我想要做的是以某种方式抽象地将每个“answers_total”div的总真值加起来并将它们存储在一个变量中。因此,对于第一个,这里有三个“真实”,而在第二个只有两个“真实”。我需要能够访问每个人的总数,可能每个人都有自己的变量?我不是百分百肯定。
我认为你用$(“。answers_total”)来做这件事。每个......
但是我不确定那之后会去哪里。关于如何做这样的事情的任何想法?也许这是不可能的,或者有更好的方法来设置并执行此操作?
非常感谢您的帮助
<div class="answers_total">
<div data-answer="true" class="answer">SPEECH</div>
<div data-answer="false" class="answer">RELIGION AND BELIEF</div>
<div data-answer="true" class="answer">PRESS</div>
<div data-answer="true" class="answer">ASSEMBLY</div>
<div data-answer="false" class="answer">PETITION</div>
</div>
<div class="answers_total">
<div data-answer="false" class="answer">SPEECH</div>
<div data-answer="true" class="answer">RELIGION AND BELIEF</div>
<div data-answer="false" class="answer">PRESS</div>
<div data-answer="true" class="answer">ASSEMBLY</div>
<div data-answer="false" class="answer">PETITION</div>
</div>
答案 0 :(得分:1)
我不确定你在完成之后想要用它做什么,或者你用“抽象”来表达你的意思,但这应该有效:
var answerTotals = [];
$('.answers_total').each(function() {
var results = { correct: 0, incorrect: 0 };
$(this).find('.answer').each(function() {
if ($(this).data('answer') == 'true')
results.correct++;
else
results.incorrect++;
});
answerTotals.push(results);
});
答案 1 :(得分:1)
您可以使用jQuery.map()函数返回一个数组..然后使用.length
属性查找每个data-answer=true
中存在多少div.answers_total
个1} p>
var x = $('.answers_total').map(function(i,v){
return $('div[data-answer=true]',v).length; // return how many have data-answer=true
});
所以
x[0] = 3 // which is the relevant to the first .answers_total div
x[1] = 2 // which is the relevant to the second .answers_total div
如果你想要计算真假数,你可以做
var x = $('.answers_total').map(function (i, v) {
return {
true: $('div[data-answer=true]', v).length,
false: $('div[data-answer=false]', v).length
};
});
然后
x[0].true = 3 // number of true in first div
x[0].false = 2 // number of false in first div
x[1].true = 2 // number of true in second div
x[1].false= 3 // number of false in second div