我在看似简单的事情上遇到了麻烦,但我不知道。总之,我正在使用单选按钮作为答案选择来创建测验,并且我试图将每个答案选择放在新的一行(或新的段落)上,但是由于某种原因,我完全无法做到。
我尝试了一些事情:
在jQuery中使用.html()命令
在代码的html部分的div中放入问答选项
这是我在html部分中所拥有的:
<div id="quiz_container">
<!-- quiz questions will be inserted by code-->
</div>
以下是使用jQuery插入问题的方式:
for(var j=0;j<questions.length;j++){
$('#quiz_container').append('<div class="question" id="q' +j+ '">
</div>');
$('#q'+j).append('<div>'+ questions[j][0]+ '</div>');
for(var i=0;i<5;i++){
$('#q'+j).append('<input type="radio" name="q'+j+ '" value="' +
questions[j][1][i] +'">'+questions[j][1][i]);
$("question").html("<p></p>");
};
};
在此代码中,
for(var i=0;i<5;i++){
$('#q'+j).append('<input type="radio" name="q'+j+ '" value="' +
questions[j][1][i] +'">'+questions[j][1][i]);
$("question").html("<p></p>");
};
每个答案选择应出现在新行上。我没有任何错误。代替
$("question").html("<p></p>");
“问题”是问题的ID,我应该怎么做才能使每个答案选择都出现在新行上?
(对不起,如果措辞怪异,如果您有任何疑问,我会尽力回答)
答案 0 :(得分:0)
因此,您可以仅通过CSS来解决此问题,方法是定位单选按钮并使用Terry指出的类似display:block;
的方法。
此外,JQuery中还有一个wrap函数,它将使用DOM节点并在其周围包裹一些东西
所以你可以做
$("question").wrap("<p></p>");
您也可以在生成输入时将<p>
放入
$('#q'+j).append('<p><input type="radio" name="q'+j+ '" value="' +
questions[j][1][i] +'">'+ questions[j][1][i] + '</p>');
答案 1 :(得分:0)
不是jQuery答案:
您可以在html中使用<br>
元素,或使用以下代码使用纯JavaScript创建一个元素:
var br = document.createElement('BR');
document.body.appendChild(br);
var p = document.createElement('P');
p.innerHTML = 'Hi2';
document.body.appendChild(p);
<p>Hi</p>
答案 2 :(得分:0)
.html
更改问题元素的整个html。
我认为您正在寻找的是这个
let answer = $("<p>").text("*answer goes here*");
$("#question").append(answer);