2016-10-29 29 views
1

HTML代碼這兩個jQuery表達式的含義?

<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"> 
    column related class="form-control totalSale" 
</tr> 

是什麼他們和他們的意義之間的區別?

var $class = $(this).parent().parent().attr('class'); 

1)

totalSale = $(this).parents('.' + $class).find('.totalSale'); 

2)

totalSale = $(this).parents('.' + $class).siblings('.' + $class + ':last').find('.totalSale'); 

什麼的這個含義下面的代碼?

if ($(this).parent().siblings().children().hasClass('.totalSale')) { ... } 
+2

[**學習jQuery **](https://learn.jquery.com/) – adeneo

+0

我只需要知道上述兩個代碼:( – Shaon

回答

0

首先:有一些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>,父集合內

  1. 檢查,如果發現一個元素與類= $類( 「roti」)==>結果是UNDEFINED。
  2. 對不起,到此爲止。
  3. 它不會嘗試在未定義的集合中找到類「totalSale」的子元素。

第二:

totalSale = $(this).parents('.' + $class).siblings('.' + $class + ':last').find('.totalSale'); 

從第一<input>,父集合內

  1. 檢查,如果它發現與類= $類的元件( 「羅地」)==>結果是UNDEFINED。
  2. 對不起,也結束了。
  3. 它不會檢查在「未定義」集合中是否有siblings元素具有類「roti」...並且肯定沒有找到last
  4. 它不會檢查它是否找到類「totalSale」的孩子。

這一切都停在#2。


您應該閱讀關於jQuery starting here的更多信息。


建議

你應該在真皮休閒知道你想從一個代碼示例,你不完全瞭解瞭解什麼。

如果你不知道你想了解什麼,這個社區將不會有太大的幫助。

一個必須閱讀:How to create a Minimal, Complete, and Verifiable example

+0

感謝兄弟之間的差異。並且對於缺少的問題感到抱歉:( – Shaon

+0

我在這個答案中給了你幾個鏈接,如果你想學習,你應該閱讀。90年代後期[互聯網被髮明](https://fr.wikipedia.org/wiki/Tim_Berners-Lee)......不久之前。現在是時候了;) –