2015-02-06 61 views
0

我在這裏遇到了一個我無法理解的麻煩。JQuery類選擇器,用「 - 」(連字符)選擇元素

我正在更新一個網站(不是由我寫的),並試圖解決一些問題。 在JS腳本文件中的某處,有些內容會在特定元素中添加內聯CSS屬性高度。這需要刪除。 已經找到它正在執行的地方。

在HTML中,我有類「刷卡控制」,「刷卡右」分子,「刷卡左」和「刷卡」

而唯一的代碼,我在JS文件與「刷卡「低於

jQuery('.swipe').height(jQuery(window).height()); 

一個已經改變了這找到多少個對象都被發現:

jQuery('.swipe').each(function(){ 
    jQuery(this).height(jQuery(window).height());    
    console.log(">>>>> "); 
    console.log(this); 
}); 

與類中的所有元素‘swipe- *’正在這個高度更新。

這是正常的嗎? (已經過驗證的jQuery類選擇器文檔)

+3

*刷卡 「與類中的所有元素 」 - \ *「 正在這個高度更新。」 *不,他們不是,不是* *是代碼;除非他們也**擁有'swipe'類(後面沒有'-xyz')。 – 2015-02-06 23:28:22

+0

不,不這樣做,看到這裏:http://jsfiddle.net/7fuogouj/只發現5個元素。 – HaukurHaf 2015-02-06 23:29:39

+2

包含足夠的代碼以允許其他人重現該問題。有關此方面的幫助,請閱讀如何創建[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。就目前而言,這個問題缺少幫助診斷問題的代碼。 – 2015-02-06 23:30:10

回答

0

根據您的描述檢查此處所做的複製。你是否看到,單擊標有「運行」的按鈕時,全部或多於一個div會改變其高度?

如果你看到多個div改變它的高度,那麼是的,這是你的瀏覽器的異常行爲,而不是jQuery。如果你只看到一個增加高度的div,那麼你就說得對。

更新:

此外,請確保您的

"swipe-*"
類實際上並不是
"swipe -*" like "swipe -left"

function changeSwipe(){ 
 
    $(".swipe").height(300); 
 
}
.box { 
 
    width: 200px; 
 
    height: 100px; 
 
    background: red; 
 
    border: 1px solid; 
 
    float: left; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="swipe box">swipe</div> 
 
<div class="swipe-right box">swipe-right</div> 
 
<div class="swipe-whatever box">swipe-whatever</div> 
 
<div class="no-swipe box">no-swipe</div> 
 
<button onclick="changeSwipe();">Run</button>