我有此复选标记块。正如名称所示,它在Stackoverflow上绘制类似于我们这里的复选标记。 我想这两个元素(checkmark_stem和checkmark_kick)的时,他们主动变成绿色,所以我试图做到这一点:添加和删除类元素子元素
window.setInterval(function() {
$('body').find('.checkmark').each(function (index) {
var current = $(this);
console.log(current);
var url = current.data('refresh');
console.log(url);
var child = current.children;
var answerID = current.data('answer');
console.log(child);
$.get(url + '?id=' + answerID, function (data) {
data = JSON.parse(data);
if(data.rating.solved_date === null)
current.children[0].removeClass('active');
else
current.children[1].addClass('active');
});
});
}, 1000);
但似乎我无法正确做这个。这两个元素有没有什么办法可以addClass('active')
?
我的元素HTML
<blockquote class="accept-answer text-right {if !$isMine} hidden{/if}" >
<div class="checkmark" title="Accept this answer" data-url="{url('controller/api/questions/mark_as_solved')}" data-refresh="{url('controller/api/questions/refresh_accepted_answers')}" data-answer="{$answer['answerid']}" data-question="{$question['publicationid']}">
<div class="checkmark_kick" title="Unnacept this answer"></div>
<div class="checkmark_stem" title="Unnacept this answer"></div>
</div>
</blockquote>
编辑:我有过在此之前,它的工作。我只是想的标识,看起来更像是一个检查
<blockquote class="accept-answer text-right {if !$isMine} hidden{/if}" >
<div class="accept" title="Accept this answer" data-url="{url('controller/api/questions/mark_as_solved')}" data-refresh="{url('controller/api/questions/refresh_accepted_answers')}" data-answer="{$answer['answerid']}" data-question="{$question['publicationid']}">
<div class="accepted up" title="Unnacept this answer"></div>
</div>
</blockquote>
window.setInterval(function() {
$('body').find('.accepted.up').each(function (index) {
var current = $(this);
console.log(current);
var url = current.parent().data('refresh');
console.log(url);
var parent = current.parent();
var answerID = parent.data('answer');
console.log(answerID);
$.get(url + '?id=' + answerID, function (data) {
data = JSON.parse(data);
if(data.rating.solved_date === null)
current.removeClass('active');
else
current.addClass('active');
});
});
}, 1000);
亲切的问候
你可以使用jQuery来选择两个子div并为它们添加'active'类。 - https://api.jquery.com/multiple-selector/。那是你在找什么? – vabii
请注意,'current'只会引用最终的'.checkmark',因为您在每次迭代中都进行异步调用。 –
[JavaScript闭合内循环 - 简单实用示例]的可能重复(http://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example) –