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

时间:2008-11-21 01:10:52

标签: 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>

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

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

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


@Shog9 - Duh ......好吧我的大脑刚启动,我现在就知道了。欢呼声。

7 个答案:

答案 0 :(得分:28)

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

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

答案 1 :(得分:26)

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

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

趣!

答案 2 :(得分:11)

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

$("selector")[0].value 

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

答案 3 :(得分:7)

  

$(&#34;选择器&#34)。公式(5)

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

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

答案 4 :(得分:2)

有几种方法可以做到这一点:

“选择以下代码段中的第一个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构造,因此性能稍差。

答案 5 :(得分:0)

这在jQuery 3.4.1中有效:

$($('li')[0]).css('color', 'blue');

答案 6 :(得分:-1)

要直接获得div,请尝试此

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