2012-07-10 38 views
0

我想改變「tr tr」的背景,如果它有一個「colpan」,並且它包含「th」,但是這下面不會工作。隱藏有th和colspan的tr

$("#mytable tr").contains('th').attr('colspan').hide(); 

你能幫忙嗎?

+0

注意'ATTR(「合併單元格」)'會返回一個字符串,而不是一個jQuery對象,所以調用'隱藏()'的字符串是行不通的。 – 2012-07-10 12:17:56

+0

另外,對於'.contains()'我想你應該使用['has()'](http://api.jquery.com/has/),因爲'contains'的唯一版本是[': contains()'](http://api.jquery.com/contains-selector/)(在元素中查找*字符串*的選擇器)。 – 2012-07-10 12:19:34

回答

2

試試這個。

$("#mytable th[colspan]").parent().hide() 
+0

您能否提供對'<'選擇器的引用?這是我以前從未見過的,並且在[jQuery Selector頁面](http://api.jquery.com/category/selectors/)上看起來不像*。 – 2012-07-10 12:16:04

+0

我知道這是不存在的,因爲我已經發現它4分鐘。真的,我也懷疑它爲什麼它工作,但它是 – 2012-07-10 12:20:23

+0

我愛你設法隨機找到一個無證的jQuery選擇器..!缺點是,如果jQuery內部結構發生了變化,那麼無證件有消失或停止工作的趨勢。 – 2012-07-10 12:21:30

7

嘗試:

$('#mytable tr').filter(
    function(){ 
     return $(this).has('th[colspan]').length; 
    }).hide(); 

JS Fiddle demo

編輯將.length添加到過濾器,因爲找到一個空數組可以算作是在jQuery中發現的東西......嘆氣。

+0

+1也打我:) – diEcho 2012-07-10 12:15:01

+0

非常優雅。我喜歡。 +1 – avall 2012-07-10 12:17:42

1

試試這個代碼:

$('th[colspan]').parents('tr').hide(); 
1

在這裏你去先生:

$( '#MYTABLE> TBODY> TR>日[合併單元格]')隱藏();

,將隱藏所有具有合併單元格MYTABLE屬性。

請不要忘記投票。

:)