2017-10-06 66 views
0

我知道这个问题的标题不是很有帮助,因为我不确定如何提出问题。但会告诉你我想达到的目标。如何在同一行上返回多个结果(jQuery帮助)

请看我的例子,因为它会更容易解释。

我记录数据questionid和输出1〜1或1〜2(在控制台)这是我想要的数据答案,但在两个答案都选中(。活动)的情况下,我想在控制台的同一行(现在)将查询返回为1〜1; 1〜2。但是在选择两者的时刻,它只是分别在控制台中输出它们。

希望你能帮助并希望我的问题有道理。

谢谢。

$('.answer').on('click', function(event) { 
 
    $(this).toggleClass("active"); 
 
    var questionid = $(".question").data("questionid"); 
 
    var answerid = $(".answer.active").data("answerid"); 
 
    //console.log("questionid " + questionid); 
 
\t //console.log("answerid " + answerid); 
 
    var query = questionid + "~" + answerid; 
 
    console.log(query) 
 
});
.active { 
 
    color: red; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="question" data-questionid="1">Question 1</div> 
 
<div class="answer" data-answerid="1">Answer 1</div> 
 
<div class="answer" data-answerid="2">Answer 2</div>

回答

1

$(".answer.active")返回多个元素,所以你必须用循环each

$('.answer').on('click', function(event) { 
 
    $(this).toggleClass("active"); 
 
    var questionid = $(".question").data("questionid"); 
 
    var query = ''; 
 
    $(".answer.active").each(function(){ 
 
    var answerid = $(this).data("answerid"); 
 
    query = query + ";" + questionid + "~" + answerid; 
 
    }); 
 
    if (query.substring(0, 1) == ';') { 
 
     query = query.substring(1); 
 
    } 
 

 
    console.log(query) 
 
});
.active { 
 
    color: red; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="question" data-questionid="1">Question 1</div> 
 
<div class="answer" data-answerid="1">Answer 1</div> 
 
<div class="answer" data-answerid="2">Answer 2</div>

0

让另一个函数负责遍历所有活动元素,让你的当前功能只需拨动类。

$('.answer').on('click', function(event) { 
    $(this).toggleClass("active"); 
    logActives(); 
} 

function logActives(){ 
var query = ""; 
$(".answer.active").each(function(){ 
    query += $(this).data("questionid")+"~"+$(this).data("answerid")+";"; 
}); 
console.log(query); 
相关问题