我无法让选择在不同的行上分开,我不知道为什么,也无法找出原因
XML:
<q>
<qNum>1</qNum>
<qText>What is the side of a hammer called?</qText>
<choice>Hammer</choice>
<choice>Face</choice>
<choice>Side of the hammer</choice>
<choice>The check</choice>
</q>
AJAX:
$(document).ready(function(e) {
$.get('quiz.xml', function (d){
var html;
var title = $(d).find('title').text();
var desc = $(d).find('description').text();
html = '<div><h1>'+title+'</h1><br><h3>'+desc+'</h3><br></div>';
$('#1').append(html);
$(d).find('q').each(function(index, element) {
var $q = $(this);
var qNum = $q.find('qNum').text();
var qText = $q.find('qText').text();
var html2 = '<div><p>'+qText+'</p>';
$q.find('choice').each(function(index, element) {
var choice = $q.find('choice').text();
html2 += '<input type="radio" name="q'+qNum+'" class="choice" value="'+choice+'" /><label class="choice">'+choice+'</label><br>';
});
$('#1').append($(html2));
});
});
});
每次都会将所有选项添加到var中,我无法弄清楚如何通过保留相同的标记名称来解决它们
答案 0 :(得分:0)
你应该改变
var choice = $q.find('choice').text();
到
var choice = element.text();
我想。它的外观是,对于每个选项,您使用$q.find('choice')
选择所有选项,而您只需要当前正在迭代的选项,即element
。
答案 1 :(得分:0)
请将其更改为
var choice = element.textContent;