使用JSON数据插入div以在html中填充另一个div

太空人

这是一个测验,我试图用JSON文件中的单词填充每个问题。

这是JSFiddle

activity.json是单词words.json是单词

有人能帮我吗?它带来了不确定性。

我要填充的div的ID是#words

我迷路了,找不到办法向他们展示。

$(document).ready(function() {
      var questionNumber = 0;
      var wordNumber = 0;
      var questionBank = new Array();
      var wordsBank = new Array();
      var stage = "#game1";
      var stage2 = new Object;
      var questionLock = false;
      var numberOfQuestions;
      var score = 0;

      $.getJSON('activity.json', function(data) {
          for (i = 0; i < data.quizlist.length; i++) {
            questionBank[i] = new Array;
            questionBank[i][0] = data.quizlist[i].question;
            questionBank[i][1] = data.quizlist[i].option1;
            questionBank[i][2] = data.quizlist[i].option2;
            questionBank[i][3] = data.quizlist[i].option3;
          }

          $.getJSON('words.json', function(data) {

            for (i = 0; i < data.quizlist.length; i++) {
              wordsBank[i] = new Array;
              wordsBank[i] = data.quizlist[0].words1;
              wordsBank[i] = data.quizlist[1].words2;
            }
            numberOfWords = wordsBank.length;
          })
          numberOfQuestions = questionBank.length;

          displayQuestion();
        }) //gtjson

      function displayQuestion() {
          var q1;
          var q2;
          var q3;
          var q4;
          var q5;
          var rnd = Math.random() * 3;
          rnd = Math.ceil(rnd);

          if (rnd == 1) {
            q1 = questionBank[questionNumber][1];
            q2 = questionBank[questionNumber][2];
            q3 = questionBank[questionNumber][3];
          }
          if (rnd == 2) {
            q2 = questionBank[questionNumber][1];
            q3 = questionBank[questionNumber][2];
            q1 = questionBank[questionNumber][3];
          }
          if (rnd == 3) {
            q3 = questionBank[questionNumber][1];
            q1 = questionBank[questionNumber][2];
            q2 = questionBank[questionNumber][3];
          }

          $(stage).append('<div class="questionText">' + questionBank[questionNumber][0] + '</div><div id="1" class="option">' + q1 + '</div><div id="2" class="option">' + q2 + '</div><div id="3" class="option">' + q3 + '</div>');

          $('.option').click(function() {
            if (questionLock == false) {
              questionLock = true;
              $('#words').append('<div class="word-pt bluedark_txt">' + q5 + '</div><div id="1" class="words word-en bluish_txt">' + q4 + '</div>');

              //correct answer
              if (this.id == rnd) {
                $(stage).append('<div class="feedback1">CORRECT</div>');
                score++;
              }
              //wrong answer    
              if (this.id != rnd) {
                $(stage).append('<div class="feedback2">WRONG</div>');
              }

              setTimeout(function() {
                changeQuestion()
              }, 1000);
            }
          })
        } //display question

      function changeQuestion() {
          questionNumber++;

          if (stage == "#game1") {
            stage2 = "#game1";
            stage = "#game2";
          } else {
            stage2 = "#game2";
            stage = "#game1";
          }

          if (questionNumber < numberOfQuestions) {
            displayQuestion();
          } else {
            displayFinalSlide();
          }

          $(stage2).animate({
            "right": "+=800px"
          }, "slow", function() {
            $(stage2).css('right', '-800px');
            $(stage2).empty();
          });
          $(stage).animate({
            "right": "+=800px"
          }, "slow", function() {
            questionLock = false;
          });
        } //change question
杏仁

首先是第一件事。如果您在任何现代浏览器中按F12键,它将打开开发人员工具,它们对于调试错误非常有用。不知道您是否知道这一点,只是以为我会告诉您。

  1. 我在如何设置小提琴访问json时遇到问题,jsfiddle阻止了请求,因此我只是将json设置为局部变量。(这就是为什么您不能从jsFiddle向json发出请求的原因。jQueryxml错误'请求的资源上没有'Access-Control-Allow-Origin'标头。'

  2. 右括号也存在一些问题。

  3. 还有两个变量,q4和q5,您可以使用但从未定义。我只是给了他们一个价值,尽管我不确定您的意图是什么。

这是一个新的jsFiddle。https://jsfiddle.net/AlmondSeason/xd71kwyg/

而且,为了StackOverflow,我将发布JavaScript。

$(document).ready(function() {

  var questionNumber = 0;
  var wordNumber = 0;
  var questionBank = new Array();
  var wordsBank = new Array();
  var stage = "#game1";
  var stage2 = new Object;
  var questionLock = false;
  var numberOfQuestions;
  var score = 0;

  var data = {
    "quizlist": [

      {
        "question": "How much is two plus two?",
        "option1": "Four",
        "option2": "Five",
        "option3": "Two",
        "wordsEN": "two",
        "wordsPT": "dois"
      }, {
        "question": "Selecione a sentença correta",
        "option1": "I am a person",
        "option2": "I is a person",
        "option3": "I are a person",
        "wordsEN": "people",
        "wordsPT": "pessoas"
      }, {
        "question": "Select the correct form in the interrogative",
        "option1": "Are you a student?",
        "option2": "Is you a student?",
        "option3": "You are a student?",
        "wordsEN": "teacher",
        "wordsPT": "professor(a)"
      }, {
        "question": "How much is one minus one?",
        "option1": "Zero",
        "option2": "Two",
        "option3": "Four",
        "wordsEN": "ten",
        "wordsPT": "dez"
      }, {
        "question": "He / She / It usam o verbo To Be ...",
        "option1": "is",
        "option2": "are",
        "option3": "am",
        "wordsEN": "Two",
        "wordsPT": "Dois"
      }, {
        "question": "Selecione a frase correta na afirmativa",
        "option1": "We are here.",
        "option2": "Are we here.",
        "option3": "We are not here.",
        "wordsEN": "Two",
        "wordsPT": "Dois"
      }, {
        "question": "Selecione a forma correta na negativa",
        "option1": "He is not here.",
        "option2": "He is not here?",
        "option3": "He are not here.",
        "wordsEN": "Two",
        "wordsPT": "Dois"
      }, {
        "question": "You / We / They usam o Verbo To Be ...",
        "option1": "are",
        "option2": "am",
        "option3": "is",
        "wordsEN": "Two",
        "wordsPT": "Dois"
      }

    ]
  };
  numberOfQuestions = data.quizlist.length;
  for (i = 0; i < numberOfQuestions; i++) {
    questionBank[i] = [];
    questionBank[i].push(data.quizlist[i].question);
    questionBank[i].push(data.quizlist[i].option1);
    questionBank[i].push(data.quizlist[i].option2);
    questionBank[i].push(data.quizlist[i].option3);
  }



  data = {
    "quizlist": [

      {
        "wordsEN": "two",
        "wordsPT": "three"
      }, {
        "wordsEN": "people",
        "wordsPT": "person"
      }, {
        "wordsEN": "teacher",
        "wordsPT": "teachers"
      }, {

        "wordsEN": "ten",
        "wordsPT": "eleven"
      }, {

        "wordsEN": "Five",
        "wordsPT": "Two"
      }, {

        "wordsEN": "Seven",
        "wordsPT": "One"
      }, {

        "wordsEN": "Five",
        "wordsPT": "Three"
      }, {

        "wordsEN": "house",
        "wordsPT": "bathroom"
      }

    ]
  };
  numberOfWords = data.quizlist.length;
  for (i = 0; i < numberOfWords; i++) {
    wordsBank[i] = [];
    wordsBank[i].push(data.quizlist[0].words1);
    wordsBank[i].push(data.quizlist[1].words2);
  }
  displayQuestion();
  //gtjson



  //Display question and word, if correct
  function displayQuestion() {
    var q5 = "What is q5 supposed to be";
    var q4 = "What is q4 supposed to be";
    //separate div that is the container of words.json
    var wordsShow = $('<div class= "center_txt"><div id="1">' + q5 + '</div><div id="2">' + q4 + '</div></div>')

    var rnd = Math.random() * 3;
    rnd = Math.ceil(rnd);
    var q1;
    var q2;
    var q3;

    if (rnd == 1) {
      q1 = questionBank[questionNumber][1];
      q2 = questionBank[questionNumber][2];
      q3 = questionBank[questionNumber][3];
    }
    if (rnd == 2) {
      q2 = questionBank[questionNumber][1];
      q3 = questionBank[questionNumber][2];
      q1 = questionBank[questionNumber][3];
    }
    if (rnd == 3) {
      q3 = questionBank[questionNumber][1];
      q1 = questionBank[questionNumber][2];
      q2 = questionBank[questionNumber][3];
    }

    //show the options
    $(stage).append('<div class="questionText">' + questionBank[questionNumber][0] + '</div><div id="1" class="option">' + q1 + '</div><div id="2" class="option">' + q2 + '</div><div id="3" class="option">' + q3 + '</div>');

    $('.option').click(function() {
      if (questionLock == false) {
        questionLock = true;
        //correct answer

        //show the word from words.json
        $("#words").append(wordsShow);

        if (this.id == rnd) {
          $(stage).append('<div class="feedback1">CORRECT</div>');
          score++;
        }
        //wrong answer  
        if (this.id != rnd) {
          $(stage).append('<div class="feedback2">WRONG</div>');
        }
        setTimeout(function() {
          changeQuestion()
        }, 1000);
      }
    })
  } //display question






  function changeQuestion() {

    questionNumber++;

    if (stage == "#game1") {
      stage2 = "#game1";
      stage = "#game2";
    } else {
      stage2 = "#game2";
      stage = "#game1";
    }

    if (questionNumber < numberOfQuestions) {
      displayQuestion();
    } else {
      displayFinalSlide();
    }

    $(stage2).animate({
      "right": "+=800px"
    }, "slow", function() {
      $(stage2).css('right', '-800px');
      $(stage2).empty();
    });
    $(stage).animate({
      "right": "+=800px"
    }, "slow", function() {
      questionLock = false;
    });
  } //change question
});



//doc ready

编辑:

更改您的DOM,以使单词div不是游戏div的子代。当您添加到游戏div中时,您将销毁该div的所有子级,包括div一词。

更改此:

<div id="game1">
 <div id="words1"></div>
</div>
<div id="game2">
 <div id="words2"></div>
</div>

对此:

<div id="game1"></div>
<div id="words"></div>

<div id="game2"></div>
<div id="words2"></div>

这是另一个需要检查的小提琴。https://jsfiddle.net/xd71kwyg/2/让您确定何时要销毁其他div或如何进行处理。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使<div>元素填充另一个<div>元素

来自分类Dev

使<div>元素填充另一个<div>元素

来自分类Dev

链接到另一个HTML文件中的另一个div

来自分类Dev

另一个div中的html文本溢出

来自分类Dev

将另一个文件中的 HTML 数据附加到 div

来自分类Dev

HTML将一个div拖到另一个div中

来自分类Dev

另一个div下的div填充了父级中的空间

来自分类Dev

使用 jQuery 在另一个 div 中克隆一个 div

来自分类Dev

强制div填充另一个左侧的空间

来自分类Dev

一个浮点div使用AUTO,然后另一个div填充其余部分

来自分类Dev

在另一个div内追加HTML div

来自分类Dev

如何在另一个(或div)中运行/保存一个HTML文件?

来自分类Dev

使用JS使用另一个div的背景图像插入图像

来自分类Dev

无法将嵌套的div放置在html css中的另一个div旁边

来自分类Dev

HTML将div拖动到另一个div中

来自分类Dev

在html和CSS中另一个div内的div垂直和水平居中

来自分类Dev

获取图像并使用Jquery插入另一个div?

来自分类Dev

如何使用html和css使div与另一个div重叠

来自分类Dev

仅使用CSS,将div放置在使用vh单位的另一个div中

来自分类Dev

骨干从另一个模型中插入数据

来自分类Dev

如何使用angular js将数据从一个div推送到另一个div(表)?

来自分类Dev

如何使用另一个表中的数据填充一行?

来自分类Dev

如何使用JavaScript将div的内容克隆到另一个div中?

来自分类Dev

使用jQuery显示另一个Div中的Div动态数量

来自分类Dev

使用jQuery将div移动到另一个div中-重复序列

来自分类Dev

使用contextmenu阻止另一个div内的div中的contextmenu

来自分类Dev

如何使用CSS在另一个div中按比例缩小div?

来自分类Dev

选择另一个div中的每个div并使用jQuery检查它的类

来自分类Dev

使用JQuery根据另一个DIV中的文本长度修改DIV

Related 相关文章

  1. 1

    使<div>元素填充另一个<div>元素

  2. 2

    使<div>元素填充另一个<div>元素

  3. 3

    链接到另一个HTML文件中的另一个div

  4. 4

    另一个div中的html文本溢出

  5. 5

    将另一个文件中的 HTML 数据附加到 div

  6. 6

    HTML将一个div拖到另一个div中

  7. 7

    另一个div下的div填充了父级中的空间

  8. 8

    使用 jQuery 在另一个 div 中克隆一个 div

  9. 9

    强制div填充另一个左侧的空间

  10. 10

    一个浮点div使用AUTO,然后另一个div填充其余部分

  11. 11

    在另一个div内追加HTML div

  12. 12

    如何在另一个(或div)中运行/保存一个HTML文件?

  13. 13

    使用JS使用另一个div的背景图像插入图像

  14. 14

    无法将嵌套的div放置在html css中的另一个div旁边

  15. 15

    HTML将div拖动到另一个div中

  16. 16

    在html和CSS中另一个div内的div垂直和水平居中

  17. 17

    获取图像并使用Jquery插入另一个div?

  18. 18

    如何使用html和css使div与另一个div重叠

  19. 19

    仅使用CSS,将div放置在使用vh单位的另一个div中

  20. 20

    骨干从另一个模型中插入数据

  21. 21

    如何使用angular js将数据从一个div推送到另一个div(表)?

  22. 22

    如何使用另一个表中的数据填充一行?

  23. 23

    如何使用JavaScript将div的内容克隆到另一个div中?

  24. 24

    使用jQuery显示另一个Div中的Div动态数量

  25. 25

    使用jQuery将div移动到另一个div中-重复序列

  26. 26

    使用contextmenu阻止另一个div内的div中的contextmenu

  27. 27

    如何使用CSS在另一个div中按比例缩小div?

  28. 28

    选择另一个div中的每个div并使用jQuery检查它的类

  29. 29

    使用JQuery根据另一个DIV中的文本长度修改DIV

热门标签

归档