2014-01-29 101 views
0

我有一些JQuery獲取列表中的第一列和第二列,並根據兩者之間的最大高度更改元素的高度。這可以很好地確保標題的高度相等,但是如果在兩列中的任何一列中都是空的,我試圖剝去一個跨度。這是到目前爲止我的工作腳本:刪除跨度,如果第一列和第二列都空

var $sections = $('.section-link'); //the column box 
$sections.filter(function() { 
return $(this).css('display') == 'block'; //aslong as the column box is visible 
}, ':nth-child(2n-1)').each(function (index, value) { //get 1st to 2nd column boxs 
    var $this = $(this); 
    var $els = $this.nextAll(':lt(1)').addBack(); //get both 
    var sectionheight = new Array(); //empty section height 
    $els.each(function (index, value) { 
     var value = $(this).find('.section-title').height(); 
     sectionheight.push(value); 
     var value2 = $(this).find('.was-price-container'); //this is the span that I'm trying to hide 
     if($.trim(value2.html()) != "") { 
     //here we have identified the span is empty and now I need to find a way to hide it if not in either boxes in second of first column 
     } 
    }); 
    var newsectionheight = Math.max.apply(Math, sectionheight); 
    $els.find('.section-title').height(newsectionheight); 
}); 

這是工作的罰款高度不過我陷入識別如果此列的跨度was-price-container有內容,如果它不刪除跨度在此列或前一列或最後一列。

- title - | - title - 
- span - | - span - < both columns have the span so keep it 
---------------------- 
- title - | - title - 
- span - | -  - < only one column has the span so keep both 
---------------------- 
- title - | - title - < neither have span so remove it 
---------------------- 
- title - | - title - 
-  - | - span - < only one column has the span so keep both 
---------------------- 

這樣做的原因是,所有的箱子保持相同的高度。

任何建議非常感謝。

回答

0

不知道這是否可以成爲您的解決方案。但是,難道你不能只用jQuery的空選擇符來刪除空的span。

$('span:empty').remove(); 

或者有選擇

$('.was-price-container span:empty').remove(); 
+0

由於使用它,這很可能會比我的if語句容易得多,但主要的問題是有它之前,或者加深後查明列其第一或第二,然後刪除範圍只有在兩者都是空的。 –

+0

你能分享HMTL嗎?弄清楚如何以及何時處理這些元素會容易得多。 –

+0

在這裏查看html:http://jsfiddle.net/2d8Tk/這個html很簡單,它只有2個div並列在大約10-20 div的列表中。 –

相關問題