我的表格结构如下:
<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 ......好吧我的大脑刚启动,我现在就知道了。欢呼声。
答案 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,请尝试此
$divElement = $('#row3 td div');
&#13;