只想将JS文件中的所有值传递给视图。现在它只传递一个结果。例如,我获得了问题1,答案1,问题2,答案2 的值,但它仅向视图传递值 question2 和 answer2 。你能帮我把JS中的所有值传递给jquery中的循环。
以下是我的观点:
<div id="accordion">
<h3><a href="#" class="question"></a></h3>
<div class="answer"></div>
</div>
这就是它的样子:
这是我的JS文件:
$(".faq_title").click(function(){
var title = $(this).text();
$.post('faq/get_faq_data', { title: title }, function (data) {
var my_obj = data;
$.each(my_obj, function (i) {
var question = my_obj[i].faq_question;
var answer = my_obj[i].faq_answer;
$('.question').text(question);
$('.answer').text(answer);
});
}, "json"); });
P.S。
答案 0 :(得分:1)
当您使用class
属性将数据设置为accordion
元素时,在这种情况下,首先只包含一个元素,结果只会显示最后一个问答集。 / p>
因此,您应该尝试为手风琴而不是单个静态元素创建动态内容。所以首先要创建一个空白的手风琴:
<div id="accordion">
<!--nothing at first!-->
</div>
然后你可以通过jQuery手风琴设置问题答案段:
var my_obj = data;
$.each(my_obj, function (i) {
var question = my_obj[i].faq_question;
var answer = my_obj[i].faq_answer;
//create new accordion element from the answer question set
var dynaContent = "<h3><a href='#' class='question'>'"+question+"'</a></h3><div class='answer'>'"+answer+"'</div>";
//append it to the accordion container
$("#accordion").append(dynaContent);
});
//refresh accordion
$('#accordion').accordion("refresh");
如果手风琴中有默认元素,这也有效。希望这有帮助。
这是一个有效的DEMO JSFIDDLE。