jQuery / JavaScript эквивалент каждого () для одного элемента? - PullRequest
2 голосов
/ 11 мая 2011

Может кто-нибудь сказать мне, как обновить следующий код, чтобы просто получить первый элемент, который возвращается в объект (данные)? Я знаю, что использование 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 
    }
]

Ответы [ 2 ]

9 голосов
/ 11 мая 2011

Обновление 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) {

}

Но вы не можете получить «первое» свойство, потому что оно неупорядочено.

Если это массив, просто используйте data[0].

Чтобы помочь вам, вы должны опубликовать, что такое data.

0 голосов
/ 11 мая 2011

Вы можете сделать это :

$(data).get(0); //same as $(data)[0]
...