循环遍历类,并获取其列表项的innerHTML jQuery

时间:2015-04-09 15:09:09

标签: javascript jquery html

这是一个包含3个元素的HTML页面,其中包含一个" .list"类。那些" .list"元素有" li"他们中的元素,以及那些" li"元素,有文字。我想循环遍历所有" li"元素,并使用jQuery将其文本推送到数组。

这是我到目前为止所做的:

var arr = [];

$(".list").each(function() {
  this.children("li").each(function() {
    arr.push(this.innerHTML);
  });
});

但是,我从控制台收到错误。

错误:

Uncaught TypeError: undefined is not a function


我做错了什么,我该如何解决?

2 个答案:

答案 0 :(得分:3)

this循环中.each()的值将是对元素的引用,而不是对jQuery对象的引用。因此:

$(".list").each(function() {
  $(this).children("li").each(function() {
    arr.push(this.innerHTML);
  });
});

$(this).children而不是this.children

请注意,您可以避开外部.each()(并不是说有任何可怕的事情):

$(".list > li").each(function() {
  arr.push(this.innerHTML);
});

答案 1 :(得分:0)

尝试以下代码。这对你有用

var arr = []; 
var div = $(".list");
div.each(function() { 
    div.children("li").each(function() { 
           arr.push(this.innerHTML); 
    }); 
});

console.log(arr);