首先:有一些HTML你定的代碼失蹤。
在第二個<tr>
塊中,HTML無效。
第二個:您的問題的簡短回答是:沒有區別。兩個陳述均失敗。
小心閱讀?
假設的HTML更像是這樣的:
<tr class="roti">
<td class="ts" rowspan="2">
<input type="text" class="form-control totalSale" id="totalSaleAmountForRoti" name='totalSaleAmountForRoti' value="0" readonly>
</td>
</tr>
<tr class="roti">
<td class="ts" rowspan="2">
<input type="text" class="form-control totalSale" id="other_id" name='other_name' value="other_value" readonly>
</td>
</tr>
然後,在你的代碼,你定義變量$class
:
var $class = $(this).parent().parent().attr('class');
將被設置爲grand-的價值父級的屬性類,如果找到。
該變量定義調用由事件處理函數或綁定到元素的函數觸發。
我很確定,因爲$(this)
。
我們假設這是第一個<input>
。
So $ class =「roti」。
.parent()是元件包裹...
.parent()。親本()是元件包裹的第二級...
等。
好嗎?
然後
你這裏有兩種說法,即儘量.find()
有一類「totalSale」的元素,元素的集合的孩子的元素中。
是啊,這句話需要讀兩遍。
在這兩種情況下,收集都是method chaining的結果。
而它的結果將被存儲爲「totalSale」變量......如果找到。
現在,你在你指定的HTML與類 「totalSale」 兩個元素。
讓我們看看第一條語句:
1:
totalSale = $(this).parents('.' + $class).find('.totalSale');
從第一<input>
,父集合內
- 檢查,如果發現一個元素與類= $類( 「roti」)==>結果是UNDEFINED。
- 對不起,到此爲止。
- 它不會嘗試在未定義的集合中找到類「totalSale」的子元素。
第二:
totalSale = $(this).parents('.' + $class).siblings('.' + $class + ':last').find('.totalSale');
從第一<input>
,父集合內
- 檢查,如果它發現與類= $類的元件( 「羅地」)==>結果是UNDEFINED。
- 對不起,也結束了。
- 它不會檢查在「未定義」集合中是否有siblings元素具有類「roti」...並且肯定沒有找到last。
- 它不會檢查它是否找到類「totalSale」的孩子。
這一切都停在#2。
您應該閱讀關於jQuery starting here的更多信息。
建議
你應該在真皮休閒知道你想從一個代碼示例,你不完全瞭解瞭解什麼。
如果你不知道你想了解什麼,這個社區將不會有太大的幫助。
一個必須閱讀:How to create a Minimal, Complete, and Verifiable example
[**學習jQuery **](https://learn.jquery.com/) – adeneo
我只需要知道上述兩個代碼:( – Shaon