#javascript #jquery #json #each
#javascript #jquery #json #каждый
Вопрос:
Может кто-нибудь сказать мне, как обновить следующий код, чтобы просто получить первый элемент, возвращаемый в объекте (данные)? Я знаю, что использование each () только для одного элемента не очень эффективно, и хотел бы улучшить его.
$(data).each(function(num, entry){
if ( num > 1 ) return false;
});
Вот пример того, что data
такое:
[
{
"id": 1,
"title": "My post",
"permalink":"http://site.com/page.html/",
"date":" 2011-05-10
}
]
Ответ №1:
Обновление 2:
Поскольку data
это просто массив (я предполагаю, что JSON уже проанализирован (если вы не можете использовать jQuery.parseJSON
или JSON.parse
)), вы можете получить первый элемент с простым доступом к массиву:
var first = data[0];
Старый ответ:
Попробуйте
$(data).first() // returns jQuery object
// or
$(data).eq(0) // returns jQuery object
// or
$(data).get(0) // returns DOM object
// or
$(data)[0] // returns DOM object
в зависимости от имеющихся у вас данных и того, что вы хотите сделать.
Обновить:
Если data
это на самом деле объект JavaScript, то нет необходимости передавать его в jQuery (jQuery в основном предназначен для работы с DOM).
Просто выполните цикл над ним с
for(var prop in data) {
}
Но вы не можете получить свойство «first», потому что они неупорядочены.
Если это массив, просто используйте data[0]
.
Чтобы помочь вам больше, вы должны опубликовать то, что data
есть.
Комментарии:
1. Спасибо! Раньше я делал что-то вроде entry.title, entry.image и т.д. для определения свойств из данных JSON. Как бы я сделал это сейчас, используя один из ваших методов?
2. $(данные). first() возвращает объект jQuery с одним элементом, так что вы можете вызвать его,
var entry = $(data).first();
а затемentry.title
вернет то же самое, что и ваш оригиналeach
.3. @Cofey: Если это объект, то вы должны сделать это совершенно по-другому. Пожалуйста, посмотрите мое обновление и опубликуйте, что именно
data
такое.
Ответ №2:
Вы можете сделать это:
$(data).get(0); //same as $(data)[0]