2016-05-23 64 views
0

我想在發送到打印機之前找到一種方法來發送自己的警報,如果任何div大於預設大小。獲取頁面上所有div ID的高度

每個頁面將有所不同,並有不同的樣本測試問題的div ID。

此外,每個div的高度不會像預先設置的那樣高。 目前,我有這個,但它不工作,我會希望:

<style> 
#one{background:#ddd;height:250px;} 
#two{background:#000;height:300px;} 
</style> 
<div id="page"> 
    <div id="one"> 
    stuff 
    </div> 
    <div id="two"> 
    more stuff 
    </div> 
</div> 
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script> 
<script> 
    var IDs = $("#page div[id]")   
    .map(function() { return this.id; }) 
    var result = $(this.id).height(); 
    if(result > 275){ 
    alert("over"); 
    }else{ 
    alert("under"); 
    } 
</script> 

我確實覺得我靠近。任何幫助是極大的讚賞。

+1

爲什麼你得到一組ID,然後從來沒有使用它?也許你應該看看['each'](https://api.jquery.com/each/)方法。 –

回答

1

您並不需要id s,但如果您想將搜索範圍限制爲id s,則表示您已正確完成此操作。當您嘗試使用結果時,問題會隨之而來。

您希望遍歷一組匹配元素。 jQuery提供each做到這一點:

$("#page div[id]").each(function() { 
    // This is called once for each matching div; 
    // `this` refers to each of the divs. So: 
    if ($(this).height() > 275) { 
     alert(this.id " is over"); 
    } else { 
     alert(this.id + " is under"); 
    } 
}); 
+1

謝謝。我必須稍微更改一下代碼才能使其工作,但它的確行得通。 –