我如何在jQuery中创build一个数组?

$(document).ready(function() { $("a").click(function() { $("#results").load("jquery-routing.php", { pageNo: $(this).text(), sortBy: $("#sortBy").val()} ); return false; }); }); 

如何在jQuery中创build数组并使用该数组而不是{ pageNo: $(this).text(), sortBy: $("#sortBy").val()}

一些想法:

  • jQuery是一个JavaScript库,而不是一种语言。 所以,JavaScript数组看起来像这样:

     var someNumbers = [1, 2, 3, 4, 5]; 
  • { pageNo: $(this).text(), sortBy: $("#sortBy").val()}是一个键值映射。 如果你想要一个键或值的数组,你可以做这样的事情:

     var keys = []; var values = []; var object = { pageNo: $(this).text(), sortBy: $("#sortBy").val()}; $.each(object, function(key, value) { keys.push(key); values.push(value); }); 
  • JavaScript中的对象非常灵活。 如果你想创build一个对象{foo: 1} ,所有以下的工作:

     var obj = {foo: 1}; var obj = {}; obj['foo'] = 1; var obj = {}; obj.foo = 1; 

总结一下,你想要这个吗?

 var data = {}; // either way of changing data will work: data.pageNo = $(this).text(); data['sortBy'] = $("#sortBy").val(); $("#results").load("jquery-routing.php", data); 

您可能会混淆Javascript数组与PHP数组。 在PHP中,数组非常灵活。 他们可以是数字索引或关联,甚至混合。

 array('Item 1', 'Item 2', 'Items 3') // numerically indexed array array('first' => 'Item 1', 'second' => 'Item 2') // associative array array('first' => 'Item 1', 'Item 2', 'third' => 'Item 3') 

其他语言认为这两个是不同的东西,Javascript是其中之一。 在Javascript中的数组总是数字索引:

 ['Item 1', 'Item 2', 'Item 3'] // array (numerically indexed) 

一个“关联数组”(也称为哈希(Hash)或映射(Map))在技术上是Javascript *中的一个对象,工作原理如下:

 { first : 'Item 1', second : 'Item 2' } // object (aka "associative array") 

它们不可互换。 如果你需要“数组键”,你需要使用一个对象。 如果你不这样做,你可以制作一个arrays。


*从技术上讲, 所有的东西都是Javascript中的一个对象,请把它放在一边。 ;)

不完全清楚你的意思。 也许:

 <script type="text/javascript"> $(document).ready(function() { $("a").click(function() { var params = {}; params['pageNo'] = $(this).text(); params['sortBy'] = $("#sortBy").val(); $("#results").load( "jquery-routing.php", params ); return false; }); }); </script> 

我有一段时间没有使用jquery,但你可能正在寻找这个:

jQuery.makeArray(OBJ)

这是一个明确的工作示例:

 //creating new array var custom_arr1 = []; //storing value in array custom_arr1.push("test"); custom_arr1.push("test1"); alert(custom_arr1); //output will be test,test1 

这是我用过的一个例子。

 <script> $(document).ready(function( ) { var array = $.makeArray(document .getElementsByTagName(“p”)); array.reverse( ); $(array). appendTo(document.body); }); </script> 

你的问题没有意义。 你正在问如何把一个哈希变成一个数组。 你不能

你可以创build一个值列表,或者创build一个键列表,这些都与jquery没有任何关系,这是纯粹的javascript