GetElementsByClassName против jquery

Если моя оригинальная функция была:

document.getElementsByClassName('blah')[9].innerHTML = 'blah';

... как я могу изменить это, поэтому я получаю тот же самый элемент в jquery? У меня это есть, но когда я положил "[9]" в конце, он не работает:

$(data).find('.blah')[9].html();

Я оставляю [9], он получает только первый элемент, чье имя класса "бла", и я хочу, чтобы он получил 10-й элемент.

Ответ 1

Эквивалент

document.getElementsByClassName('blah')[9].innerHTML = 'blah';

- использовать псевдо-селектор :eq:

$(".blah:eq(9)").html('blah');

или eq функция:

$(".blah").eq(9).html('blah');

(... и затем html функция, чтобы установить внутренний HTML.)

Ответ 2

Посмотрите, что вы ищете, :eq():

$('.blah').eq(9).html('blah');

потому что :eq() индексируется 0, поэтому :eq(9) найдет элемент в 10-м индексе.

. eq() jQuery doc

Существует также функция :nth-child():

$('.blah:nth-child(10)').html('blah');

потому что :nth-child() индексируется 1, поэтому вам нужно разместить там 10-ю позицию.

: nth-child() jQuery doc

из документов:

Поскольку реализация jQuery: nth-selectors строго выводится из спецификации CSS, значение n является "1-индексированным", что означает, что подсчет начинается с 1. Для других селекторных выражений, таких как: eq() или: даже jQuery следует за индексом "0-индексированный" JavaScript. Для одного синтаксиса, содержащего два

s, $('li: nth-child (1)') выбирает первый а $('li: eq (1)') выбирает второй.

Ответ 3

попробуйте следующее

$('.blah').eq(9).html('blah');

Ответ 4

Другим ответом может быть:

$($(data).find('.blah')[9]).html();

Когда вы используете [9], он возвращает объект DOM, который не знает, что такое функция html(), но без [9] он возвращает объект jQuery, который отличается функцией html().

Ответ 5

Попробуйте это

$(".blah:eq(9)").html('blah');

Ответ 6

$('.blah')[9].innerHTML="BLAH";

Это должно решить вашу проблему.

Ответ 7

Попробуйте это

$('.blah').eq(9).html('blah');

Ответ 8

Вы также должны просто использовать метод jQuery get():

$('.blah').get(9)

Объекты jQuery также функционируют как индексированные массивы в качестве возвращаемых элементов, поэтому это также должно работать:

$('.blah')[9]