jquery получает html-элементы по типу и классу

#javascript #jquery #html

#javascript #jquery #HTML

Вопрос:

Я пытаюсь получить список названий ссылок со страницы Википедии. Я скачал HTML и теперь пытаюсь запустить некоторый код javascript / jquery, чтобы запустить это. Вот что у меня есть на данный момент…

 var elements = $("ul > li");
alert(elements.length);
alert(elements.get(0).val());
  

Первое предупреждение выдает мне «505», что выглядит примерно так (таких элементов довольно много).

Мои вопросы в том, как мне фильтровать элементы $("ul > li") также по имени класса? Допустим, конкретные элементы, которые я хочу, имеют класс «class1».

Второе предупреждение мне ничего не дает, хотя elements.get(0) говорит мне object HTMLLIelement , что, я думаю, хорошо. Итак, я не могу получить доступ к определенному свойству, которое я хочу (скажем, ‘title’).

Спасибо за помощь, ребята.

Комментарии:

1. Здесь вы можете найти актуальную документацию по jQuery.

Ответ №1:

Мои вопросы в том, как мне фильтровать элементы $ («ul> li») также по имени класса? Допустим, конкретные элементы, которые я хочу, имеют класс «class1».

Это все синтаксис селектора CSS.

 $("ul > li.class1")
  

Второе предупреждение мне ничего не дает, хотя elements.get (0) сообщает мне «object HTMLLIelement», что, я думаю, хорошо.

Это потому, что .get() возвращает простой элемент DOM, а не jQueryified. Используйте .eq() вместо:

 elements.eq(0).val();
// to get the title:
elements.eq(0).prop('title');
// or if you're using jQuery <1.6,
elements.eq(0).attr('title');
  

если элемент (ul> li) содержит 3 элемента «a» (link), которые мне нужны, как мне получить первый?

Используйте :first или .first() .

Комментарии:

1. О, хорошо, спасибо. Еще один вопрос: если элемент (ul > li) содержит 3 элемента «a» (link), которые мне нужны, как мне получить первый?

Ответ №2:

$ («ul > li.className») должно быть всем, что вам нужно.

Ответ №3:

как мне также отфильтровать элементы $ («ul> li») по имени класса?

 $("ul > li.class1")
  

Чтобы получить атрибут title:

 elements.eq(0).attr('title');
  

Комментарии:

1. elements.get(0).attr('title'); Нет. Смотрите мой ответ.

2. да, понял, что после того, как я опубликовал, я скопировал код операции вместо того, чтобы вводить его.