2012-07-23 20 views
0

我在一個特殊的「問題」在這裏。 Ti適應來自客戶端的請求,我需要執行以下操作。瀏覽頁面上的所有表格。對於每張表格,檢查它是否恰好有2個TD。如果確實如此,那麼我需要做一個「更多閱讀」的實現。jquery通過表運行,只能做2x TDs

我已經在另一個頁面上使用過,我知道我想摺疊和展開的確切div。

$(".more-block").each(function(){ 
    if ($(this).height() > adjustheight){ 
     id = this.id; 
     id = id.split("_"); 
     $("#expand"+id[1]).toggle(function() { 
       id = this.id; 
       $(".more-block"+id).css('height', 'auto').css('overflow', 'visible'); 
       $('html, body').animate({scrollTop: $(document).height()}, 'slow'); 
       $("#"+id).attr('src',path+'/images/expand2.png'); 
       $(".frontpage_box").css('height', ''); 
      }, function() { 
       id = this.id; 
       $("#"+id).attr('src',path+'/images/expand.png'); 
       $(".more-block"+id).animate({height: adjustheight}, "slow", function(){ 
        $(".more-block"+id).css('height', adjustheight).css('overflow', 'hidden'); 
       });   
     }); 
    }; 
}); 

$(".more-block").css('height', adjustheight).css('overflow', 'hidden'); 

任何想法? 當我運行TD時,我只需添加「more-less」和「more-lessexpand1」(數字爲增量)。這可能嗎?我不知道如何運行這些表格,只有在找到兩個TD並且只在第二個TD上進行最後一點時才這樣做。

哦,順便說一句......其重要的是它只有第二個TD崩潰和擴大。左邊的是不允許的。如果有人能幫我找到運輸署的興趣,我或許能解決這個問題。

請幫

+0

你堅持什麼地方?查找具有兩個'td'元素的'table'元素?閱讀更多的執行..? – 2012-07-23 21:54:06

+0

首先,建立一個[fiddle](http://jsfiddle.net),其次,你確定你應該爲客戶做這種工作嗎? – adeneo 2012-07-23 21:54:21

+0

我被困在尋找TD的問題。 @nnnnnn似乎已經發布了一個解決方案,我會嘗試。和adeneo - auch ...你永遠的歡迎,以另一種解決方案,將有助於更多的幫助...沒有需要的其他部分... – 2012-07-23 22:01:14

回答

0

「我也許能解決這個最後一點,如果有人可以幫助我找到感興趣的TD的。」

像這樣的事情會感興趣的表(一個或多個),假設你沒有嵌套的表格:

$("table").each(function() { 
    var $tds = $(this).find("td"); 
    if ($tds.length != 2) 
     return; 
    // this is a table with exactly two cells, so do something 
    // $tds.eq(0) will reference first td; 
    // $tds.eq(1) will reference second td; 
    // So to add the classes to the second cell... 
    $tds.eq(1).addClass("more-less more-lessexpand1"); 
}); 
+0

謝謝,我要去給它去。 – 2012-07-23 22:01:32

+0

不客氣。讓我對恭喜你的「放棄」態度表示祝賀。很多人都會提問,希望其他人能夠爲他們實施完整的解決方案,因此,看到有人要求提示和指導以及嘗試和自己完成其他工作,這真是太好了。玩耍和嘗試是編程的全部內容。 – nnnnnn 2012-07-24 00:17:55

+0

感謝m8 :)現在它的所有工作都完美了,我已經把所有其他的想法都弄清楚了。 – 2012-07-24 20:37:47

1
$('table').filter(function(
    return $('td', this).length==2; 
)).find('td').last().addClass('more-less more-lessexpand1'); 
+0

Adeneo我還沒有嘗試過你的解決方案呢... nnnnnn的解決方案的作品。你的答案有很大的區別嗎?我應該注意的任何事情? – 2012-07-23 22:37:20

+0

我不認爲這會很有效。 '.filter()'部分將查找頁面上所有具有兩個單元格的表格元素,到目前爲止狀態良好,但是後面的.find('td')。last()。addClass(...) )'只適用於最後一個表格的最後一個單元格,而不適用於每個雙單元格表格的最後一個單元格。 – nnnnnn 2012-07-24 00:14:57

+0

@nnnnnn - 是的,我發現它時,我發現它,但完全忘了編輯它,應該包裝在一個$ .each()函數來正常工作。 – adeneo 2012-07-24 00:25:54