Как создать массив в jquery?
$(document).ready(function() {
$("a").click(function() {
$("#results").load("jquery-routing.php",
{ pageNo: $(this).text(), sortBy: $("#sortBy").val()}
);
return false;
});
});
Как создать массив в jQuery и использовать этот массив вместо { pageNo: $(this).text(), sortBy: $("#sortBy").val()}
Ответы
Ответ 1
Некоторые мысли:
-
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 невероятно гибкие. Если вы хотите создать объект {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);
Ответ 2
Вы можете вводить в заблуждение массивы 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 (a.k.a. "associative array")
Они не взаимозаменяемы. Если вам нужны "ключи массива", вам нужно использовать объект. Если вы этого не сделаете, вы создадите массив.
*
Технически все это объект в Javascript, пожалуйста, отложите это для этого аргумента.;)
Ответ 3
Не совсем понятно, что вы имеете в виду. Возможно:
<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>
Ответ 4
Я не использовал jquery некоторое время, но вы могли бы найти это:
jQuery.makeArray(obj)
Ответ 5
Вот ясный рабочий пример:
//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
Ответ 6
Вот пример, который я использовал.
<script>
$(document).ready(function( )
{
var array =
$.makeArray(document
.getElementsByTagName("p"));
array.reverse( );
$(array). appendTo(document.body);
});
</script>
Ответ 7
ваш вопрос не имеет смысла. вы спрашиваете, как превратить хэш в массив. Вы не можете.
вы можете сделать список значений или составить список ключей, и ни одно из них не имеет ничего общего с jquery, это чистый javascript