Upv*_*ote 178 jquery jquery-selectors
$(t).html()
Run Code Online (Sandbox Code Playgroud)
回报
<td>test1</td><td>test2</td>
Run Code Online (Sandbox Code Playgroud)
我想td从$(t)对象中检索第二个.我搜索了一个解决方案,但没有任何对我有用.知道如何获得第二个元素吗?
dav*_*vin 329
抢第二个孩子:
$(t).children().eq(1);
Run Code Online (Sandbox Code Playgroud)
或者,抓住第二个孩子<td>:
$(t).children('td').eq(1);
Run Code Online (Sandbox Code Playgroud)
sta*_*kex 25
这是一个可能在代码中更清晰的解决方案:
要获得无序列表的第二个孩子:
$('ul:first-child').next()
Run Code Online (Sandbox Code Playgroud)
还有一个更详细的例子:这段代码获取UL标识为'my_list'的第二个子元素的'title'属性的文本:
$('ul#my_list:first-child').next().attr("title")
Run Code Online (Sandbox Code Playgroud)
在第二个示例中,您可以在选择器的开头删除'ul',因为它是多余的,因为ID对于单个页面应该是唯一的.只是为了增加示例的清晰度.
关于性能和内存的注意事项,这两个例子是很好的性能,因为它们不会使jquery保存一个必须在之后过滤的ul元素列表.
kum*_*rsh 22
这个怎么样:
$(t).first().next()
Run Code Online (Sandbox Code Playgroud)
除了答案看起来多么美观之外,您还必须考虑代码的性能.因此,知道$(t)变量究竟是什么也是相关的.它是一个数组<TD>还是一个内部<TR>有几个节点<TD>s?为了进一步说明这一点,请查看<ul>包含50个<li>孩子的列表中的jsPerf分数:
$(t).first().next()到目前为止,这种方法是最快的.
但是,另一方面,如果您获取<tr>节点并找到<td>子节点并运行相同的测试,则结果将不同.
希望能帮助到你.:)
Jus*_*igh 15
我没有在这里看到它,但你也可以使用CSS spec选择器.查看文档
$('#parentContainer td:nth-child(2)')
Run Code Online (Sandbox Code Playgroud)
试试这个:
$("td:eq(1)", $(t))
Run Code Online (Sandbox Code Playgroud)
要么
$("td", $(t)).eq(1)
Run Code Online (Sandbox Code Playgroud)
除了使用jQuery方法之外,您还可以使用提供给您的本机cells集合<tr>.
$(t)[0].cells[1].innerHTML
Run Code Online (Sandbox Code Playgroud)
假设t是一个DOM元素,您可以绕过jQuery对象创建.
t.cells[1].innerHTML
Run Code Online (Sandbox Code Playgroud)