2015-07-21 43 views
1

我與attr()如何使用attr()jQuery的工作

從過去幾個月的工作,我是新來的jQuery。我正在從jQueryApi網站引用,我看到這一點:

<div>Zero-th <span></span></div> 
<div>First <span></span></div> 
<div>Second <span></span></div> 

$("div") 
    .attr("id", function(arr) { 
     return "div-id" + arr; 
    }) 
    .each(function() { 
     $("span", this).html("(id = '<b>" + this.id + "</b>')"); 
    }); 

我沒有得到這個東西任何人可以解釋一下嗎?什麼是this變量,以及這些id如何遞增?

輸出

enter image description here

+0

請嘗試更具體地處理您所面臨的問題......「這件事」是指什麼? – Lix

+0

你能發佈你找到這個鏈接的來源嗎? –

+0

http://api.jquery.com/attr/ – Daniel

回答

1

傳遞到attr功能作爲第二個參數接收它當前匹配元素的索引位置中的作用。該函數的參數arr實際上是元素的索引。所以第一個將是0,第二個1等等。

正是這個索引用於組裝元素的新的id屬性。

參考:http://api.jquery.com/attr/#attr-attributeName-function

.attr(attributeName, function)

的attributeName 設置屬性的名稱。

功能類型:函數(整數索引,字符串ATTR)
的函數返回到設定的值。這是當前的元素。接收集合中元素的索引位置和舊屬性值作爲參數。

在您的each命令中,回調接收當前正在迭代的項目。該項目由this變量表示。你也可以指定不同的變量比this使用其他的命名回調的說法:

.each(function(the_element) { 
    $("span", the_element).html("(id = '<b>" + the_element.id + "</b>')"); 
}); 

通過命名的第一擴充回調the_element我們現在可以使用變量來表示當前元素 - 這是與使用this變量完全相同,我們只關注我們想要使用的名稱。