簡體   English   中英

在jquery元素上使用Lodash集合函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM