Roc*_*och 11 jquery css-selectors
我想在我的一个表的td中选择一个元素,但我真的不懂语法.这是我试过的:
$("table > td:#box")
Run Code Online (Sandbox Code Playgroud)
这是我的表结构的示例:
<div id="main">
<div id="today">
<table id="list" width="100%" cellpadding="4" cellspacing="0" border="0" style="font-size: 10px; border-collapse:collapse;">
<tr id="109008">
<td class="tdstd">
<a class="box" href="link"></a>
</td>
Run Code Online (Sandbox Code Playgroud)
或者使用Chrome的DOM检查器:

San*_*man 17
好吧,"#box"表示一个ID为"box"的DOM对象,因为它是一个唯一的ID.您可以直接选择那个.但是你的代码建议你有几个带有id"box"的元素,你必须改变它们.您应该在TD内部为您的元素分配一个类,或者如果它是唯一的DIV或SPAN在框中,您可以像这样访问它:
$("table td .box")
Run Code Online (Sandbox Code Playgroud)
请注意,">"选择器意味着TD必须是TABLE的直接子节点,并且我假设您之间至少有一个TR级别,因此这也不起作用.我上面的示例将所有TD中的每个元素与任何TABLE的子项中的"box"类匹配.
显然我也会在桌子上设置一个类,并使用这样的东西:
$("table.boxes td .box")
Run Code Online (Sandbox Code Playgroud)
这样你就不会意外地选择你想要工作的范围之外的东西.
你现在已经添加了HTML,所以我正在编辑我的答案:
$("table#list a.box")
Run Code Online (Sandbox Code Playgroud)
最有效的选择器是:
$('#list').find('a.box');
Run Code Online (Sandbox Code Playgroud)
要么:
$('a.box', $('#list')[0]);
Run Code Online (Sandbox Code Playgroud)
通过id首先选择表,您已将范围设置为仅表,然后您可以在该表中搜索所需的元素.
第二个选择器是相同的,您正在选择一些东西,并且您将范围作为第二个参数.
阅读第一篇文章会更容易.