2017-10-06 65 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); 
相關問題