jQuery中是否有“ <p>”函数?

时间:2019-05-24 14:36:47

标签: javascript jquery html

我在看似简单的事情上遇到了麻烦,但我不知道。总之,我正在使用单选按钮作为答案选择来创建测验,并且我试图将每个答案选择放在新的一行(或新的段落)上,但是由于某种原因,我完全无法做到。

我尝试了一些事情:

  • 在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,我应该怎么做才能使每个答案选择都出现在新行上?

(对不起,如果措辞怪异,如果您有任何疑问,我会尽力回答)

3 个答案:

答案 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);