,我需要選擇其中滿足以下條件的每個錶行的第一個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