Подтвердить что ты не робот

Как выбрать один элемент в jQuery?

У меня есть структура таблицы, которая выглядит так:

<table>
 <tr id="row1">
   <td>
     <div>row 1 content1</div>
   </td>
   <td>
     <div>row 1 content2</div>
   </td>
   <td>
     <div>row 1 content3</div>
   </td>
 </tr>
 <tr id="row2">
   <td>
     <div>row 2 content1</div>
   </td>
   <td>
     <div>row 2 content2</div>
   </td>
   <td>
     <div>row 2 content3</div>
   </td>
 </tr>
 <tr id="row3">
   <td>
     <div>row 3 content1</div>
   </td>
   <td>
     <div>row 3 content2</div>
   </td>
   <td>
     <div>row 3 content3</div>
   </td>
 </tr>
</table>

Используя jQuery, я пытаюсь выбрать DIV во второй ячейке третьей строки. Я пробовал следующее (между прочим):

var d = $('#row3').children(':eq(1)').children(':eq(0)');

То, что я получаю, это массив с одним элементом (DIV, которому я нужен), и я должен затем получить доступ, используя d [0]. Почему jQuery возвращает один элементный массив, я думал, что использование селектора выше вернет элемент DIV напрямую?


@Shog9 - Дух... Ок, свет только что включился в моем мозгу, я понял это сейчас. Приветствия.

4b9b3361

Ответ 1

jQuery всегда возвращает набор элементов. Иногда набор пуст. Иногда он содержит только один элемент. Красота заключается в том, что вы можете писать код для работы одинаково, независимо от того, сколько элементов согласовано:

$("selector").each(function()
{
   this.style.backgroundColor = "red";
});

Fun!

Ответ 2

Если вы предпочитаете хранить объект jQuery, вы можете написать вместо этого:

$("selector").first().val()

Ответ 3

Если вы обнаружите, что знаете, что будете иметь дело только с одним элементом и что будет возвращен только один элемент, вы всегда можете выбрать нулевой индекс массива.

$("selector")[0].value 

Он грязный и нарушает соглашение jQuery в целом... но вы "можете" сделать это.

Ответ 5

Чтобы получить div напрямую, попробуйте

$divElement = $('#row3 td div');

Ответ 6

Для этого есть несколько вариантов:

"Выберите первый из нескольких элементов Div в приведенном ниже фрагменте и измените цвет на розовый.

<div>Div 1</div> <div class="highlight">Div 2</div> <div id="third">Div 3</div> <div class="highlight">Div 4</div>

Здесь мы можем выбрать первое Div следующим образом:

1) $("div").first().css("color","pink");
2) $("div:first").css("color","pink");
3) $("div:first-of-type").css("color","pink");

Обратите внимание, что 2 - это конструкция jQuery, а не встроенная конструкция css и, следовательно, может быть немного менее эффективной.