如何在jQuery中选择单个元素?

Kev*_*Kev 30 javascript 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>
Run Code Online (Sandbox Code Playgroud)

使用jQuery我试图在第三行的第二个单元格中选择DIV.我尝试了以下(除其他外):

var d = $('#row3').children(':eq(1)').children(':eq(0)');
Run Code Online (Sandbox Code Playgroud)

我得到的是一个带有单个元素的数组(我之后是DIV),然后我必须使用d [0]进行访问.为什么jQuery返回单个元素数组,我认为使用上面的选择器会直接返回DIV元素?


@ Shog9 - Duh ......好吧我的大脑刚启动,我现在就知道了.干杯.

vca*_*rel 29

如果您更喜欢保留jQuery对象,您可以改为:

$("selector").first().val()
Run Code Online (Sandbox Code Playgroud)

  • jQuery始终与类似数组的对象一起使用。任何后续操作都涉及所有元素。因此所有这些表达式都会产生相同的结果:`$(“ selector:first”)。click()`,$(“ selector”)。first()。click()`,`$($(“ selector “)[0])。click()`。请参阅Shog9的答案。 (2认同)

Sho*_*og9 25

jQuery总是返回一组元素.有时候,这个集合是空的.有时,它只包含一个元素.这样做的好处是,无论匹配了多少元素,您都可以编写代码以相同的方式工作:

$("selector").each(function()
{
   this.style.backgroundColor = "red";
});
Run Code Online (Sandbox Code Playgroud)

有趣!

  • 这怎么可能是选定的答案?问题是“如何选择单个元素?” 你的回答是“你得到了所有这些!” (2认同)

小智 13

如果您发现您知道只处理单个元素并且只返回一个元素,则始终可以选择数组的零索引.

$("selector")[0].value 
Run Code Online (Sandbox Code Playgroud)

它很脏并且打破了jQuery的惯例...但你"可以"做到这一点.

  • 仅选择数组的 [0] 索引将返回 DOM 元素,而不是 jQuery 对象,因此您将无法在其上使用 .html() 等 jQuery 方法。 (3认同)

Vij*_*mma 8

$( "选择").EQ(5)

这将返回第一个类jquery数组,只包含第5个项目.即,我可以对返回值执行jquery函数.

在这里找到答案:https: //forum.jquery.com/topic/jquery-class-selectors-referencing-individual-elements