2015-08-03 2 views
2

Массив несколько походит на это:как получить доступ массива в JQuery

[[Object { button={...}}, 
    Object { input={...}}, 
    Object { checkbox={...}}, 
    Object { textarea={...}}], 
[Object { textarea={...}}] 
] 

В фигурных скобках я установить некоторые свойства, такие как цвет, значение, тип и т.д.
Что я хочу, чтобы получить каждый объект массива и проверить свойства, подобные типу объекта, а затем вызвать функцию для выполнения дальнейших действий. Так же, как в PHP мы используем:

foreach($a as $b){ 
// and then do something here .. 
}; 

Пожалуйста, помоги мне, и я надеюсь, что каждый может понять, что я пытаюсь сказать.

// var i is the counter for page numbers 
 
function pagination(i) { 
 
    alert(i); 
 
    i--; 
 
    //page is array 
 

 
    var result = page; 
 
    //console.log(result[i]); 
 
    var $currentElem; 
 
    $(result[i]).each(function() { 
 

 
    currentElem = $(this); 
 
    console.log(currentElem); 
 

 
    }); 
 
}

+0

Как выглядит ваш массив 'page'? Можете ли вы показать нам пример? И что вы пытаетесь сделать с массивом? Это не кажется очевидным в вашем вопросе. – Terry

+0

массив страниц содержит объекты со своими свойствами (как показано в начале), что я хочу от него, чтобы прочитать массив в jquery и получить доступ к объектам в нем. –

+0

Я имею в виду ** пример ** ваших данных, т. Е. Фиктивный массив. Именно поэтому мы делаем упор на публикацию минимальных, поддающихся проверке и конкретных примеров вместо псевдокода, который не работает. – Terry

ответ

2

.each используется, когда вы цикл над элементами коллекции JQuery. Пропустить содержимое массива или объекта. использовать $.each():

$.each(result[i], function(n, currentElem) { 
    console.log(currentElem); 
}); 

И вы не должны использовать $(this) если this не является DOM элемент. Если это просто объект Javascript, обернуть его в объект jQuery не нужно.

Вы можете получить доступ к свойствам, используя обычный Javascript variable.propertyname синтаксис, например. currentElem.button и currentElem.button.color. Чтобы добавить элементы к вашему виду, вы можете сделать что-то вроде:

var button = currentElem.button; 
$("<button>", { 
    value: button.value, 
    name: button.name, 
    css: { 
     color: button.color, 
     width: button.width, 
     backgroundColor: button.backgroundcolor 
    } 
}).appendTo($("#buttonDiv"); 
+0

да barmar спасибо, но в следующей части есть проблема, да, я получаю объекты массива, но я хочу получить доступ к этим объектам и его свойствам, вы можете помочь меня с этим @barmar –

+0

'variable.propertyname' получит доступ к свойству в объекте, который содержит' variable'. – Barmar

+0

Я хочу получить объект, например, если его кнопка я бы вызвал функцию, которая добавила бы кнопку к моему представлению.Я надеюсь, что ям понял, и вы можете получить то, что я хочу @barmar –

1

Для итерацию можно использовать для (в) или в Jquery $ .each.

for(var i in array) { 
    console.log(array[i]); 
} 
+0

У меня нет опыта с $ .each, так что если вы можете мне помочь, это будет очень полезно благодаря –

+0

Используйте для (in). То же самое, и вам не нужен jquery. Если вам нужен jquery http://api.jquery.com/jquery.each/ –

+0

'for-in' не следует использовать с массивами: http://stackoverflow.com/questions/500504/why-is-using- for-in-with-array-iteration-such-the-bad-idea – Barmar

Смежные вопросы