Javascript 如何循环<;li和提取/解析中间的数据?
我有一个html源代码作为变量,希望遍历每个li并提取所需的数据。我尝试使用$(strVar.find(“li”).each(函数(){alert($(this.text());});但我无法获得中间的数据!你们能告诉我怎么做吗?谢谢Javascript 如何循环<;li和提取/解析中间的数据?,javascript,jquery,parsing,find,Javascript,Jquery,Parsing,Find,我有一个html源代码作为变量,希望遍历每个li并提取所需的数据。我尝试使用$(strVar.find(“li”).each(函数(){alert($(this.text());});但我无法获得中间的数据!你们能告诉我怎么做吗?谢谢 Data to extract from first li: -1(li class id) -https://website.com/image1.jpg (li background image url) -writing reports(div text w
Data to extract from first li:
-1(li class id)
-https://website.com/image1.jpg (li background image url)
-writing reports(div text with class name:class="task_name")
-for items sold(div text with class name:class="training_text")
-1.mp4(input value with class name: class="video")
Data to extract from second li:
-2(li class id)
-https://website.com/image2.jpg(li background image url)
-drawing(div text with class name class="task_name")
-using oil paint(div text with class name:class="training_text")
-2.mp4(input value with class name: class="video")
html代码:
函数MyFunction()
{
var strVar=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“编写报告”;
strVar+=“对于已售出的物品”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“ ”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“绘图”;
strVar+=“使用油漆”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=”“;
//在这里,我想对每个进行循环,您所展示的代码的主要问题是您使用的是find()
,但是您试图检索的li
是HTML中的根对象,因此您需要使用filter()
从那里,您可以使用map()
构建一个对象数组,其中包含需要从li
中检索的数据:
let bgRe = /^url\((['"]?)(.*)\1\)$/
let data = $(strVar).filter("li").map(function() {
let $li = $(this);
return {
id: this.id,
bgImageUrl: bgRe.exec($li.find('.ex_thumbnail').css('background-image'))[2],
reports: $li.find('.task_name').text().trim(),
items: $li.find('.training_text').text().trim(),
video: $li.find('.video').val()
}
}).get();
函数MyFunction(){
var strVar=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“编写报告”;
strVar+=“对于已售出的物品”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“ ”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“绘图”;
strVar+=“使用油漆”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
strVar+=“”;
让bgRe=/^url\(['“]?)(.*)\1\)$/
让数据=$(strVar).filter(“li”).map(函数(){
让$li=$(这个);
返回{
id:this.id,
bgImageUrl:bgRe.exec($li.find('.ex_缩略图')).css('background-image'))[2],
报告:$li.find('.task_name').text().trim(),
项目:$li.find('.training_text').text().trim(),
视频:$li.find('.video').val()
}
}).get();
控制台日志(数据);
}
MyFunction();
我的函数()在哪里?myFunction()
?你尝试了什么?谢谢你的回复。我编辑了我的第一篇文章,我尝试使用$(strVar)。find(“li”)。each(function(){alert($(this).text());});但我没有得到进一步处理的数据。非常感谢你给出了完美的答案。我从中学到了很多东西:-)
let bgRe = /^url\((['"]?)(.*)\1\)$/
let data = $(strVar).filter("li").map(function() {
let $li = $(this);
return {
id: this.id,
bgImageUrl: bgRe.exec($li.find('.ex_thumbnail').css('background-image'))[2],
reports: $li.find('.task_name').text().trim(),
items: $li.find('.training_text').text().trim(),
video: $li.find('.video').val()
}
}).get();