【发布时间】:2020-04-08 00:10:40
【问题描述】:
我有一个函数可以从一个元素中打印出文本,然后是从另一个网页请求的元素中的文本。
function together(){
var finalString ="";
var x = document.getElementsByClassName("h-userinput");
for (var i = 0; i < x.length; i++) {
var text = x[i].innerText || x[i].textContent;
console.log(text+"\n");
var query = "#ctl00_ContentPlaceHolder_ResultsGrid_TB > tr:nth-child(bbcc) > td.total-score-column";
query = query.replace("bbcc",i+1);
var poop = ((document.querySelector(query)).onclick.toString());
text = poop.replace("javascript:location.href=\'","");
text = text.replace("function onclick(event) {","");
text=text.replace("}","");
text = text.replace("\';","");
text = "https://bartholomew.itslearning.com"+text;
var url = text;
fetch(url)
.then(res => res.text())
.then((responseText) => {
const doc = new DOMParser().parseFromString(responseText, 'text/html');
console.log(doc.querySelector("#qti-choiceinteraction-container > tbody > tr.checkedrow > td.answer > div > label > span > p")+"\n");
})
.catch((err) => {
// There was an error, handle it here
});
}
//console.log(finalString);
}
问题是当我运行它时,需要一些时间才能从其他网页获得回复,但循环继续执行而没有得到回复并打印出结果。我想等到元素打印出来后再继续循环的下一次迭代。
【问题讨论】:
-
这能回答你的问题吗? Wait promise inside for loop
标签: javascript jquery html request