[英]Using a Lodash collection function on jquery elements
我試圖在元素的jQuery集合上使用lodash的_.partition
,如下所示:
const $elements = $('<div class="outer"><div class="thisOne">thisOne</div><div>not thisOne</div><div>nor thisOne</div></div>').children();
// the above line ends up printing {0: <div class="thisOne">thisOne</div>, 1: <div>not thisOne</div>, 2:<div>nor thisOne</div>, length: 3} I may have mis-rememebered how it gets there.
// regardless it's a list of $jQuery elements
const [$matched, $unmatched] = _.partition($elements, element => element.text() === "thisOne");
$matched.forEach(element => expect(element).toHaveClass("thisOne"));
$unmatched.forEach(element => expect(element).not.toHaveClass("thisOne"));
但是我的錯誤在第二行,它說element.text()
不是函數。
我已經看到了帶有ES6箭頭函數的jQuery .each()函數這個問題,並且我認為它不像each
jQuery數組函數一樣重要,並且應該在每個元素上操作。 將其更改為(index, element) => element.text() === "thisOne"
仍然不起作用,因此我完全不能認為這是原因。
我究竟做錯了什么?
問題是_.partition($elements, element => element.text() === "thisOne")
是該元素不是 jQuery元素,而是本機dom元素。
要更正此問題,您需要在元素周圍應用$(...)
,如下所示:
element => $(element).text()
確保在運行jQuery函數之前,每個元素都知道jQuery。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.