2013-07-24 35 views
0

我想將所有<td>的顯示值設置爲block,其中類別爲.subjectGroupCompare ,其餘爲「無」。一整天都在嘗試 - 呃。看起來應該很簡單。針對瀏覽器兼容性問題的jQuery實現

$("#SFGPage").children("table").eq(1).find("td").each(function() { 
    var $td = $(this); 
    if ($(".subjectGroupCompare")[0]) { 
     $td.css("display", "block"); 
    } else { 
     $td.css("display", "none"); 
    } 
}); 
+0

感謝您的任何反饋! –

+0

你爲什麼要在表格單元上設置「display:block」?我懷疑這會給你的佈局帶來種種問題。 – ehdv

回答

1

我認爲,要檢查是否有$tdsubjectGroupCompare如果是這樣,那麼你需要這個

if($td.hasClass('subjectGroupCompare')) { 
    $td.css("display", "block"); 
} 
else { 
    $td.css("display", "none"); 
} 
1

你有你的if說法是錯誤的。

您必須檢查特定節點是否具有subjectGroupCompare類。你可以用

$td.hasClass("subjectGroupCompare") 

所以在最後的檢查,你的代碼應該是這樣的

$("#SFGPage").children("table").eq(1).find("td").each(function() { 
    var $td = $(this); 
    if ($td.hasClass("subjectGroupCompare")) { 
     $td.css("display", "block"); 
    } else { 
     $td.css("display", "none"); 
    } 
}); 
0

我我的選擇,所以如果你想要顯示塊/沒有TD,你可以嘗試取決於你的代碼這

這將隱藏無類的所有TD .subjectGroupCompare

$("#SFGPage").children("table").eq(1).find("td:not(.subjectGroupCompare)").css("display", "none"); 

顯示所有的智慧H級.subjectGroupCompare

$("#SFGPage").children("table").eq(1).find("td.subjectGroupCompare").css("display", "block"); 

我想你也可以使用.hide().show()

0

爲什麼不能讓jQuery的做更多的工作?代碼更清潔&它爲jQuery提供了優化的機會,在jQuery中它更可能被優化/熱點,而不是你手動編寫循環&'if'條件。

事情是這樣的:

var table = $("#SFGPage").children("table").eq(1); 
var tds = table.find("td"); 
tds.filter(".subjectGroupCompare").css("display", "block"); 
tds.not( ".subjectGroupCompare").css("display", "none"); 

由於@ehdv說,可能有問題,設置顯示:上表單元格塊。您可以調查這些問題&自己調整解決方案。