当列表项的数量未知时,如何在加载每个列表项后立即逐个修改列表项
how to modify list items one by one as soon as each one is loaded, when number of list items is unknow
我不能使用'windlow.onload'或'document.onload',我也不知道列表项的数量,但我知道数量很大。我想在加载每个列表项后立即逐个修改列表项。我实现了以下代码,但我觉得可能有更好的解决方案。知道吗?
function func_loopOverList(){
func_loopOverList.loadedCurr;//Current function call; number of loaded items
func_loopOverList.loadedLast;//Last function call; number of loaded items
if(document.readyState!=="complete"){
func_loopOverList.loadedCurr=document.getElementsByTagName("li").length;
for(var i = func_loopOverList.loadedLast; i < func_loopOverList.loadedCurr; i++){
var element=document.getElementsByTagName("li")[i];
//do things to element
}
func_loopOverList.loadedLast=func_loopOverList.loadedCurr;
setTimeout(func_loopOverList,15);
}else{
console.log("Happy End");
}
}
稍微修改了代码,将getElementsByTagName返回的动态"节点列表"更改为数组 - 这样事情就不会变得激烈
function func_loopOverList() {
function process() {
var lis = document.getElementsByTagName("li");
func_loopOverList.loadedCurr = lis.length;
[].slice.call(lis, func_loopOverList.loadedLast || 0).forEach(function(element) {
//do things to element
});
func_loopOverList.loadedLast = func_loopOverList.loadedCurr;
}
process();
if (document.readyState !== "complete") {
setTimeout(func_loopOverList, 15);
} else {
process(); // one more time - this may be redundant, but it wont hurt
console.log("Happy End");
}
}
这使用数组的forEach,只是因为,没有真正的原因,我更喜欢它。你可以用一个for循环来做到这一点,但我只是觉得使用getElementsByTagName列表的"副本"更安全(因为它不是静态列表)
相关文章:
- 如何根据对具有多行的先前列表的选择来动态加载下拉列表
- Netsuite Suitelet:在不达到治理限制的情况下,遍历事务行项目的列表加载和提交记录
- 如何在页面加载后禁用下拉列表框项目的选择
- 从要使用Protractor测试的服务器异步加载的动态数据列表的列表
- 网页上已有tinymce加载图像列表
- 在本地存储中选中复选框,但在加载时也要筛选列表
- 如果使用jquery在页面加载时未选择任何选项,如何禁用下拉列表
- 在下拉列表中的页面加载中已经选择了一个选项,该选项也可以更改
- jqgrid动态加载选择列表
- 在Moqui中,如何在html.ftl中加载数据库表数据作为下拉列表
- 如何从 API 填充数据并加载到下拉列表中
- Jquery正在将新闻列表加载到dom中
- 等待所有选择列表加载 jQuery
- 使用 jQuery 和 html 下拉列表加载页面
- 如何避免轮播项目在页面构建时作为列表加载
- 如何将用户喜欢的“播放列表”加载到SoundCloud JS小部件嵌入式播放器中
- 如何让jQuery等待图像列表加载后再处理它们
- 根据另一个列表框的值将值列表加载到列表框中
- 下拉列表加载数据从数据库PHP javascript
- JQuery-回调下拉列表加载