首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery append和"for“函数

Jquery append和"for“函数
EN

Stack Overflow用户
提问于 2013-05-01 22:22:45
回答 2查看 83关注 0票数 0

我已经制作了一个测验创建器,但现在我正试图将其中的信息提取到“前端”测验中。

我正在尝试构建一个这样的for循环。这里还试图将类“.hide”添加到除第一个创建的div之外的所有带有类“.Query-holder”的div中。

代码语言:javascript
复制
for(var i = 0; i < questions.length; i++) 
{
    var q = questions[i];
    var answers = q.getAnswers();
    $(".question-holder").append("<h2 id='QuizQuestionHeadline'>" + q.getQuestion() + "</h2><div class='question-wrap'></div>");            
    $(".question-wrap").append("<ul class='answers' id='quiz-answers'></ul>");          

    for(var n = 0; n < answers.length; n++)
    {
        $("#quiz-answers").append("<li><input tabindex='1' type='checkbox' id='input-1'><label for='input-1'><span>"+ answers[n].getAnswer() +"</span></label></li>");          
    };
};      

for(var i = 2; i < questions.length; i++) 
{
    $(".question-holder").addClass('hide');         
}; 

其中由上述代码创建的最终HTML应为:

代码语言:javascript
复制
<div class="question-holder">

<h2 id='QuizQuestionHeadline'>The Question</h2>
      <ul id='quiz-answers' class="answers">
        <li>
          <input tabindex="1" type="radio" id="input-1" name="quiz-radio">
          <label for="input-1"><span>Answer 1</span></label>
        </li>
        <li>
          <input tabindex="2" type="radio" id="input-2" name="quiz-radio" checked>
          <label for="input-2"><span>Answer 2</span></label>
        </li>
      </ul>
</div>

这里有谁能帮我一点忙吗?:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-01 22:36:26

您最好还是隐藏所有相关的div,但然后只显示您想要的任何一个...

代码语言:javascript
复制
var index = 0; // 0 based, so 0 is the first question

$(".question-holder").addClass("hide");
$(".question-holder").eq(index).removeClass("hide");

您只需要更新index变量并再次运行该代码,以显示特定的问题:)

票数 0
EN

Stack Overflow用户

发布于 2013-05-01 22:26:11

请注意,$(".question-holder").addClass('hide');将隐藏具有类question-holder的所有div。所以for循环在这里没有任何意义。

代码语言:javascript
复制
for(var i = 2; i < questions.length; i++) {
    $(".question-holder").addClass('hide');         
}; 

您可以为每个div使用不同的id,然后将此addClasshide用于除第一个div之外的所有div。

另一个简单的解决方案是:

首先隐藏所有div,然后显示第一行代码,如下所示。

代码语言:javascript
复制
$(".question-holder").css('display', 'none');
$(".question-holder:first").css('display', 'block');
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16319920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档