2012-07-25 46 views
0

我需要創建一個數組,它需要在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); 

}; 

它顯示[]空數組 它必須是這樣 [{「樣本」:「什麼是你父親的名字?」,「SAMPLE2」:「什麼是你的寵物的名字?」,「 sample3「:」你學校的名字是什麼?「}]

+0

你確定你不需要的對象? – adeneo 2012-07-25 22:38:33

+0

我真的不明白你在做什麼,你確定要創建** JSON **嗎?請更好地描述你的問題,提供你的代碼,輸入和期望的輸出。 – 2012-07-25 22:42:02

回答

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

+0

謝謝...我明白了。 – shyammtp 2012-07-27 09:33:19

0

這不是一個有效的javascript數組。我想你想要更多的東西一樣:

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

是的......但我需要的是爲這個數組有不同的鍵。 – shyammtp 2012-07-25 22:54:11

0

你不能在一個數組字符串鍵 - 你應該使用對象本 -

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

這會給你 -

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

如果您需要迭代鍵,請使用[Object.keys](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/keys)或[underscore.js](http ://underscorejs.org/#keys) – GreatTall1 2012-07-25 23:16:19

相關問題