javascript - 通过javascript对象循环后动态创建文本框

标签 javascript jquery ajax json

我有一个 javascript,它通过 ajax 请求向服务器发送一些信息,并接收一些数据作为问题及其 ID 作为 json 数组。

这是我从服务器收到的响应 json 数组的样子:

   [
     {
      "ID":"1",
      "question":"Write a function called addNum. "
        },
     {
      "ID":"3",
      "question":"Write a function called sumDouble "
      }
    ]

这是 JavaScript:

$(document).ready(function(){
    $("form#input_qnumber").submit(function() {

    var questions = $('#questions').attr('value'); // written question
    var quizname = $('#quizname').attr('value');

    if (questions) { // values are not empty
        $.ajax({
            type: "POST",
            url: "https://xxxx",
            contentType: "application/x-www-form-urlencoded; charset=utf-8",
            dataType: "application/json",
            data: 'questions='+questions+'&quizname='+quizname,

            success: function (data) 
            {
                var JSONObject = JSON.parse(data); 

                for (var key in JSONObject) {
                    if (JSONObject.hasOwnProperty(key)) {
                        console.log(JSONObject[key]["ID"] + ", " + JSONObject[key]["question"]);
                    }
                }



            }

        });
    }
    else {
        $('div#createquizresp').text("Enter question ID's separated by a comma to be included in the quiz");
        $('div#createquizresp').addClass("error");
    } // else
    $('div#createquizresp').fadeIn();
    return false;
});
});

如您所见,我可以将响应 json 解析为 JavaScript 对象数组,循环遍历它并将内容转储到控制台中。我想要的是创建 textarea 元素,为其 id 属性提供数组中的“ID”键,并使用数组中相应的问题键对其进行标记。之后我可以将元素附加到我的 html 内的 div 中。但我不太确定如何做到这一点,或者是否可能。请停下来。

最佳答案

如果您还想要一个标签元素;

for (var key in JSONObject) {
    if (JSONObject.hasOwnProperty(key)) {
        $('<label>')
            .attr('for', JSONObject[key]["ID"])
            .html(JSONObject[key]["question"])
            .appendTo('wherever_you_want');
        $('<textarea>')
            .attr('id', JSONObject[key]["ID"])
            .appendTo('wherever_you_want');
    }
}

关于javascript - 通过javascript对象循环后动态创建文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29726806/

相关文章:

javascript - 控制c3图表叠加顺序

javascript - jquery $(window).resize 立即触发并忽略 if/else 语句?

javascript - 包含的 javascript 文件是否可以访问父文档中的全局变量?

jquery - 仅允许 onclick 一次

javascript - jQuery/javascript "rotate"更改事件图像交换效果

javascript - 如何使用react-datepicker 促进轻松的逐年导航?

jquery - 使用jquery自动滚动到页面底部

ajax - fogbugz 如何处理 "Add Case"ajax?

javascript - ASP.NET MVC4 : On text changed, 执行ajax请求,然后返回json结果并更新模型而不重新加载页面

javascript - 为什么我的 ajax 调用返回 null