Подтвердить что ты не робот

Как создать массив в 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()}

4b9b3361

Ответ 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