2

我有以下 HTML

<table>
    <tr>
        <td><span></span></td>
        <td><a><span></span></a></td>
        <td><span></span><span><span/></td>
    </tr>
<table/>

我需要在每个 td 中选择 span 的第一次出现。我会从上面的 HTML 中提取 3 个跨度。

$('td span')返回所有 (4) 个跨度

$('td span:first-child')也返回所有跨度

$('td span:first')只先返回

$('td > span')仅返回 2 个跨度。

我可以通过选择器或过滤器来做到这一点吗?
我必须使用什么来实现这一目标?

4

3 回答 3

11

尝试这个:

​$('td').find('span:first')

http://jsfiddle.net/qDAt8/

请注意,您的标记无效。

于 2012-09-26T12:11:24.703 回答
2

修复 HTML 后,这将起作用:

$('td').find('span:first');

演示

上面的 DEMO 使用以下示例 HTML 并直观地突出显示匹配的元素:

<table>
    <tr>
        <td><span>span 1.1</span><span>span 1.2</span></td>
        <td><a><span>span 2.1</span><span>span 2.2</span></a></td>
        <td><span>span 3.1</span><span>span 3.2</span></td>
    </tr>
</table>
于 2012-09-26T12:14:35.407 回答
1
$("table td").find("span:first")

为您提供前三个跨度。当您提供更详细的搜索时,jQuery 会更有效地查找元素。

于 2012-09-26T12:16:43.077 回答