jQuery .find()里面的.each()没有用

时间:2017-02-12 15:35:01

标签: javascript jquery find each

目前我遇到了一个非常基本的jQuery问题。我认为我不了解jquery的.each()。

所以这是我的代码:

<div class="test-list">
   <div class="test-item">
      <p class="test-paragraph">Test 1</p>
   </div>
   <div class="test-item">
      <p class="test-paragraph">Test 2</p>
   </div>
   <div class="test-item">
      <p class="test-paragraph">Test 3</p>
   </div>
</div>

我只是迭代了一堆完美无缺的项目。但后来我想在我的元素中得到the.test-paragraph的文本。问题是find()方法不起作用。 Alle存在html元素。

if easy_to_eval_var or (r = heavy_func()):
    .
    .
    .
    do_something_with_heavy_func_output(r)

有谁知道问题是什么?

1 个答案:

答案 0 :(得分:6)

根据MDN doc

  

箭头函数表达式的语法短于函数表达式, 不绑定自己的,参数,超级或new.target 。箭头功能始终是匿名的。这些函数表达式最适合非方法函数,不能用作构造函数。

箭头函数this内部不会引用元素,因此请使用普通函数。

$('.test-list .test-item').each(function() {
   console.log($(this).find('.test-paragraph').text());
});

或者您可以使用text()方法和回调来迭代并获取元素的文本内容。

$('.test-list .test-item .test-paragraph').text((i, text) => console.log(text))

或者代替this使用箭头函数中的第二个参数,并使用引用该元素的docs

$('.test-list .test-item').each((i, ele) => console.log($(ele).find('.test-paragraph').text()));