【问题标题】:Form a Json array in $.each function in jqueryjquery中$.each函数中形成Json数组
【发布时间】:2012-07-25 22:36:56
【问题描述】:

我需要创建一个数组,该数组需要在 jquery 每个函数中具有自定义索引和值。例如。我需要创建一个这样的数组 [4: 'sampleIndex1','test':'sampleIndex2'];

但在使用每个函数时,jquery 需要 '4' 索引将是数组的第 4 个索引,剩余索引 0、1、2、3 会将值设置为空。我不需要数组中的 0 1 2 3 索引。非常感谢您的即时帮助!!!

提前致谢,

以下是示例代码, 我需要为选择选项创建 div 元素。

<select name="question" id="myselect">
                            <option value="sample1">What is your father's name?</option>
                            <option value="sample2">What is your pets's name?</option>
                            <option value="sample3">What is your school's name?</option>
                        </select> 

$("#myselect").changeselect({width:400}); 
$.fn.changeselect=function(options){
    var defaults = {  
            width: 600 
    };      
    var options = $.extend(defaults, options); 
    var createhtml="";
var selectarr=new Array();
    $("option",this).each(function(k,v){
selectarr[$(this).attr('value')] = $(this).html();  
            createhtml +="<div id='"+k+"'>"+$(this).html()+"</div>";
    });
console.log(selectarr);
$(this).after(createhtml);

};

它显示 [] 空数组 它需要是这样的 [{"sample1":"你父亲叫什么名字?", "sample2":"你的宠物叫什么名字?", "sample3":"你们学校叫什么名字?"}]

【问题讨论】:

  • 您确定不需要对象吗?
  • 我不太明白您要做什么,您确定要创建 JSON 吗?请更好地描述您的问题,提供您的代码、输入和所需的输出。

标签: jquery json


【解决方案1】:

您正在寻找一个 javascript 对象。

(function () {

  var obj = new Object();

  $('#myselect option').each(function (index, option) {

    var option$ = $(option);

    $('<div/>').attr('id', option$.attr('value')).text(option$.html()).appendTo(/**/);

    obj[option$.attr('value')] = option$.html()

  });

  console.log(obj);

}).call(this)

这是一个例子:http://jsbin.com/irohow/6/edit

【讨论】:

    【解决方案2】:

    这不是一个有效的 javascript 数组。我想你想要的更像是:

    [{4: 'sampleIndex1'}, {'test':'sampleIndex2'}]
    

    【讨论】:

    • 是的...但是我需要为这个数组设置不同的键。
    【解决方案3】:

    数组中不能有字符串键 - 你应该为此使用一个对象 -

    var a = new Object();
    a['4'] = "Some Value";
    a['5'] = "Another Value";
    

    这会给你-

    {"4":"Some Value","5":"Another Value"}
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    • 2010-10-12
    • 1970-01-01
    • 2010-12-03
    • 2011-09-12
    • 2012-09-10
    相关资源
    最近更新 更多