目前我遇到了一个非常基本的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)
有谁知道问题是什么?
答案 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()));