2014-02-15 37 views
3

我一直在測試幾個小時不同代碼的DOM旅行。什麼樣的對象在Jquery的.each中正確返回'this'?

$(element).children('.classelement').each(function(){ 
    alert(this) // returns "object HtmlDivElement" 
    alert(this.lastChild) // returns "object Text" 

    // NOTE: The last child is a <a> element 
}); 

爲什麼this.lastChild回報object Text?如果this返回一個DOM對象,爲什麼lastChild不?

然後我有下一個問題:什麼樣的對象返回this.each

在這種情況下,我必須做些什麼來獲取DOM對象?

+1

回答

5

lastChild返回元素中任何類型的最後一個節點(包括寫入文件中的空格,製表符或換行符)。如果您需要元素中的最後一個HTMLElement,則必須使用lastElementChild

+0

用'lastElementChild'代替'lastChild',它可以是一個文本節點,這將返回的href,爲什麼? – Yavierre

+1

其實''''元素的'toString()'方法給你'href'。如果你做了alert(this.lastElementChild.textContent),你會得到'a'中的文本。 – Teemu

+0

你是對的,這對我來說是意外的,但它的工作原理。謝謝:-) – Yavierre

相關問題