2014-11-24 68 views
1

我從滾動到頁面底部時動態加載元素的頁面獲取div的屬性。最初在頁面上有10個div,在滾動時,每次動態地將10個新div加載到頁面上。動態加載的元素不在HTML源代碼中

我的劇本是這樣的:

var arr = document.getElementsByTagName('html')[0].innerHTML.match(/data-username="([^"]*")/gm); // I want the value from the attribute data-username 
alert(arr.length); // size is 10 

window.scrollTo(0, document.body.scrollHeight); // scroll to bottom to load 10 divs dynamically 
arr = document.getElementsByTagName('html')[0].innerHTML.match(/data-username="([^"]*")/gm); 

alert(arr.length); // size is still 10 but should be 20 

爲什麼數組大小還是10?我如何獲得所有20個div並迭代它們? 我看了看HTML源代碼,問題是動態加載的div不存在...我該如何獲取動態加載的元素?

+1

你給了元素機會第二次調用'getElementsByTagName'之前加載?由於這一行代碼是在滾動到底部之後立即執行的,它將在運行任何異步代碼以獲取其他元素之前運行。 – 2014-11-24 14:29:53

+2

好像你應該聽一個滾動事件,然後在該事件的回調中放置第二個getElementsByTagName調用。 – esvendsen 2014-11-24 14:31:36

+0

另外,如果你只是做一個普通的舊視圖源代碼,你將不會在代碼中看到動態加載的元素。您需要使用瀏覽器的開發者控制檯來查看生成的源代碼。 – esvendsen 2014-11-24 14:39:00

回答