Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何循环<;li和提取/解析中间的数据?_Javascript_Jquery_Parsing_Find - Fatal编程技术网

Javascript 如何循环<;li和提取/解析中间的数据?

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

我有一个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 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();