jQuery不如选择器,以不同的方式对待每个孩子

时间:2013-07-26 16:29:32

标签: javascript jquery xpath jquery-selectors screen-scraping

我正在尝试使用以下命令选择结构中的前六个div:

$('#alpha > .bet.gimmel > div :lt(6)').each(function(){
    //code here
}

据我了解,这段代码首先定位id为“alpha”的div,然后我指定其子节点,其类匹配“bet”和“gimmel”,然后选择前六个子节点。我现在的问题是我有我想要玩的子集,我怎么能说x到第一个div,做y到第二个div等等。我的目标是抓取文本,如下所述,所以任何非常感谢帮助。

我感兴趣的HTML格式如下。请注意,此信息嵌套有5或6个其他div,因此我不认为我需要全部指定:                                             文字_1                                                            
TEXT_2                          ......大约10次               有些相关的第二部分:虽然它可能效率不高,但我可以通过Chrome的开发人员工具复制我想要的文本的XPath,然后将其粘贴到

$(theXPath).show(); 

这是我的代码到目前为止的样子:

function getData() {
    $('#ext-gen56 > .identify.multiline > div:lt(6)').each(function (i) {
        if (i == 0) {
            $(this).text();
        } else if (i == 1) {
            $(this).text();
        } else {
            $(this).text();
        }
    });
}

1 个答案:

答案 0 :(得分:1)

首先,指定索引的选择器之间应该没有间隙

$('#alpha > .bet.gimmel > div:lt(6)')

使用$.each迭代元素时,使用传递给函数的索引

$('#alpha > .bet.gimmel > div:lt(6)').each(function(i) {

      if(i ===0) {
          /// do something
      }
      else if (i ===1 ) {
          /// do something else
      }
      ...
      ...
});

更新

看起来像我的语法错误

      else {
          $(this).text();
      }

   }  < -- End of each
}  < -- En of function

原来是

      else {
          $(this).text();
      }

   });  < -- End of each
}  < -- En of function