2014-11-24 62 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

回答