gpt4 book ai didi

javascript - 设置自定义过滤器,将列表项标题从搜索条件中排除

转载 作者:行者123 更新时间:2023-11-27 22:47:47 26 4
gpt4 key购买 nike

此代码(我从书中获取)将向 ListView 应用一个过滤器,仅搜索正文副本,从搜索条件中排除列表项标题

<body>
<div data-role=”page” id=”MY-page”>
<div data-role=”header”>
<h1>Sports</h1>
</div>
<div data-role=”content”>
<ul data-role=”listview” data-filter=”true”>
<li>Football</li>
<li>Basketball</li>
<li>Tennis</li>
<li>Volleyball</li>
</ul>
<!-- etc. -->

</body>
$(document).bind("mobileinit", function() {
$.mobile.listview.prototype.options.filterCallback = onlyBody;
});

function onlyBody(text, searchValue) {
var splitText = text.trim().split("\n");
console.log(" text: "+ splitText[1]);
return splitText[1].toLowerCase().indexOf( searchValue ) === -1;
};

String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g,””);
}

这段代码我没看懂

 return splitText[1].toLowerCase().indexOf( searchValue ) === -1;

我知道 indexOf 返回一个数字,表示指定的 searchvalue 第一次出现的位置,如果从未出现过,则返回 -1发生=== 运算符返回一个 bool 值。为什么我们要返回 bool 值?

此外,在关闭 body 标记之前将此代码放入 script 标记中后,我没有注意到 jQuery Mobile 中的默认过滤器发生了更改。我如何确保此代码正常工作?

最佳答案

将其分解为每个步骤:

splitText[1]

返回splitText第二元素数组(因为数组索引是从零开始的)

.toLowerCase()

数组的值是一个字符串,这会将该值转换为完全小写。

.indexOf(searchValue) === -1;

indexOf()在调用它的字符串/数组中查找给定值,并将其在字符串中的位置作为整数返回。该整数是匹配的起始索引。如果未找到匹配项,则返回 -1

return splitText[1].toLowerCase().indexOf(searchValue) === -1;

将它们全部放回一起,这行代码返回 true如果searchValuesplitText 的第二项中找不到数组。

不幸的是,您没有向我们展示足够的代码来了解为什么返回这个 bool 值,或者如何使用它。为此,您需要检查 listView 中的逻辑以查看 $.mobile.listview.prototype.options.filterCallback 是如何工作的。使用值。

关于javascript - 设置自定义过滤器,将列表项标题从搜索条件中排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38293360/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com