2017-02-10 112 views
-2

我想知道這段代碼是如何翻譯的。我不確定它做了什麼。這個JQuery代碼如何被翻譯?

$("div") 
    .first() 
    .parent() 
    .find(".projects") 
    .css("color","red") 
    .fadeOut(200); 
+6

只需查看[API文檔](http://api.jquery.com)中的每一步。 SO不是代碼翻譯服務。 –

+0

使用所有div創建一個jQuery實例,在jQuery實例的元素集合中創建另一個實例,創建另一個實例並放入父元素,並執行影響此實例的操作,這會影響集合中的元素(但不會正是我說的) – Hydro

+0

你的意思是翻譯成香草JS? –

回答

5
$("div") 
    .first() 
    .parent() 
    .find(".projects") 
    .css("color","red") 
    .fadeOut(200); 

此代碼使用鏈接。

  1. 它發現內DOM所有的div
  2. 所有的div,它正在使用first
  3. 然後得到的父的第一個div DIV使用parent
  4. 然後讓所有的.projects元素使用find
  5. 然後使用'css'更改這些元素的CSS
  6. 然後慢慢隱藏這些元素(200 ms)使用fadeout

它是利用鏈接在這裏,這意味着它不會做一遍又一遍的DOM搜索,一旦搜索,然後嘗試應用在它的所有方法。

鏈接意味着每個函數都會返回一個包含所有搜索或篩選結果的jQuery實例,以便您可以在該jQuery實例上調用另一個函數。

鏈接是一個很好的方法,但它確實需要大量的時間和減慢應用......這從SO參考可幫助this

希望它可以幫助

+0

驚人的解釋!謝謝。 –

+0

我認爲_Chaining是一個很好的...並且減緩了應用程序的過度使用! –

+1

我會刪除*鏈接是一個非常好的方法,但它確實需要大量的時間,並減慢應用程序*除非你想要支持一些統計數據和示例... – DelightedD0D

1

這被稱爲jQuery中的鏈接。

該代碼的行爲如下。

$("div") // select `div` elements from dom 
    .first() // select the first `div` element from the list returned by previous call 
    .parent() // it will select its first level parent 
    .find(".projects") // find any inner element which has class `.project` 
    .css("color","red") // css will applied to the selected element 
    .fadeOut(200); // then it will fade out. 

jquery在那裏庫中實現鏈接,這樣一個函數將在另一個函數上工作。

如果您想要在自己的庫中應用鏈接,則需要返回this,以便其他函數能夠理解您要返回的內容。

+1

編輯和upvoted – Mojtaba

+0

$(「div」)不選擇所有div來自dom的元素,它選擇找到的第一個元素。 –

+1

@MollyHarper不,它沒有。它實際上會選擇所有'div'標籤 – DelightedD0D

2
.first() 

要找到第一元件。 Exampe

.parent() 

用於選擇父項。 Example

.find() 

用於查找元素。 Example

.css() 

用於添加cssExample

.fadeOut() 

用於看不見的元素。Example

+0

爲什麼downvotes?這是很好的答案(帶參考)! –

+0

「用於不可見的元素。」,大聲笑+1 – DelightedD0D

+0

描述可能會更好一些。你可以包括一點關於jQuery如何讓你鏈接方法。 – Marie

3

這可以通過你徹底研究...

$("div") // select div elements 
    .first() // get the first div element from all of the div elements from previous call 
    .parent() // get the parent element of the first div 
    .find(".projects") // find the element with the class name "projects" within the div element 
    .css("color","red") // change the color of that element to red 
    .fadeOut(200); // hide that element by fading it to transparent with a duration of 200 

文檔(這是我強烈建議你看一下):

.first() .parent() .find() .css() .fadeOut()


希望這會有所幫助。