我如何在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