,我需要选择其中满足以下条件的每个表行的第一个TD:第一个表的每一行W的/选择第一个TD的jQuery
- TD没有合并单元格
- TD在第一个表,而不是任何嵌套的人
下,我不工作的...
$("table:first > td:first-child").not("[colspan]").css("background-color","red");
,我需要选择其中满足以下条件的每个表行的第一个TD:第一个表的每一行W的/选择第一个TD的jQuery
下,我不工作的...
$("table:first > td:first-child").not("[colspan]").css("background-color","red");
要限制为外表的td
,可以使用多个子选择器深入到特定级别。
$("table:first > tbody > tr > td:first-child").not("[colspan]")
请注意,我包括tbody
。你应该明确地将它包含在你的表中,因为大多数浏览器(但不一定全部)会在缺失时注入它。
如果您有应包括thead
和tfoot
元素,使用*
代替tbody
。
$("table:first > * > tr > td:first-child").not("[colspan]")
谢谢。我希望找出一个解决方案,没有父>子选择器,因为它已被弃用... – santa 2012-01-04 18:12:51
@santa:不,不推荐使用'parent> child'选择器。不使用左手操作数的情况下不推荐使用,如:'> child,context'或$(context).find('> child')'。 – 2012-01-04 18:18:00
的TD
可能不是TABLE
反正的直系后裔(应该有之间的TR
),所以只是删除>
在格兰选择:
$('table:first td:first-child:not([colspan])');
而且,我认为它只是> child
选择使用已过时(当在选择器中没有父母时)。 parent > child
应该是完全有效的:
注:$( “> ELEM”,上下文)选择将在未来 版本中将会弃用。因此不鼓励使用它的替代 选择器。
/* This piece of code selects every first TD element without colspan
* in EVERY NOT nested TABLE
*/
// Select all without colspan
$('table td:first-child:not([colspan])').filter(
// filter out those having more than 1 parent table
function() {
return $(this).parents('table').length == 1
}).css('background', 'red');
你能张贴在[的jsfiddle]为例(http://jsfiddle.net/)? – 2012-01-04 17:50:33
*“同样父母>子选择器被取消......”*不,它不是。只有在不使用左侧操作数的情况下才会使用它。 '>'是一个有效的CSS选择器,所以不推荐使用它。但是,只有一个操作数才能使用它,这不是有效的CSS,所以不赞成使用这种特定的行为。 – 2012-01-04 18:25:52
@am不是我 - 你说得对。它是$(“> elem”,上下文)已被弃用。 – santa 2012-01-04 18:27:46