2013-07-25 20 views
0

enter image description herejQuery的:樣式所有空兒達陣只有當第(:第一)TD不包含文本(:空)

我需要一些jQuery代碼到樣式的所有空兒TDS只有當第一個TD不包含文本。

現在我的代碼將所有空的TD樣式設置爲灰色(請參見圖片)。

我只想要第一行的樣式,因爲第一個TD包含文本。換句話說,我需要測試第一個TD是否包含文本,如果是,請在該行上添加淺灰色,如果爲空,則不要將着色添加到空TD。

jsbin上面的代碼:

http://jsbin.com/ojemuf/1/edit

+0

第一句和第三句是矛盾的。你可以編輯帖子澄清。 – B2K

回答

3

我希望我理解你的問題的權利
環槽的TR元素,並在第一個非空添加顏色到空TD的tr元素

$('tr').each(function() { 
    if(!$(this).find('td').first().is(':empty')) 
    $(this).find('td:empty').css('background', '#ccc'); 
}); 

---編輯內 - - 是否要更新整個表時,第一個元素是不是空Mathletics

$('tr td:first-child').not(':empty').siblings("td[class*='_crew']:empty").css("background", "#DDCEC0"); 
+0

完美!謝謝:) – user1040259

+3

也許第二個選項更清潔,基於Mathletics – TheAnchorsmith

+0

的答案我敢肯定,有一個奇怪的邊緣情況下,但一般來說,從不使用'each'進行選擇。 (無論如何,我向你拋出了一個贊成票。) – Mathletics

6

選擇行,檢查是否第一個孩子是空的,讓與其相配套的兄弟姐妹:

$('TR TD: ('td [class * ='_ crew']:empty「)。css(」background「,」#DDCEC0「);

$('tr td:first-child:not(:empty)').siblings("td[class*='_crew']:empty").css("background", "#DDCEC0"); 

顯然我讓它倒退了!

+0

不錯!它可以顛倒嗎?如果第一個TD中有文字,我想要添加顏色。 – user1040259

+0

'$('tr td:first-child:not(:empty)')'或'$('tr td:first-child')。not(':empty')';我忘了,如果選擇器在嵌套時玩的很好。 – Mathletics

+0

這隻能在同一行獲得直接兄弟姐妹。這是意圖還是應該爲整個桌子着色? @ rick-ootes – B2K

0

問題的 反向版本是有點不清楚,或者如果要更新所有匹配的行。對於整個表,你可以試試這個:

$("td:first:not(:empty)") 
    .closest("table") 
     .find("td[class*='_crew']:empty") 
      .css("background", "#DDCEC0"); 

從描述,似乎其他的答案錯過了,他希望這個應用時,第一個元素是不是空的事實。

相關問題