搜索我的 HTMLCollection 是否包含特定文本
Search if my HTMLCollection contains certain text
我有属性搜索功能,允许我搜索卧室、浴室、价格(高价和低价)的数量,我也试图让它告诉我客户是否搜索了一个或多个词,在记录中。比如 "River" 之类的。
我一直在玩 .contains() 和 .indexOf(),但都无法正常工作。以下是我尝试过的一些;
for (var i=0;i<x.length;i++)
{
var item = x[i];
if (item.getElementsByTagName("Bedrooms")[0].childNodes[0].nodeValue >= filterBed
&& item.getElementsByTagName("BathsTotal")[0].childNodes[0].nodeValue >= filterBath
&& item.getElementsByTagName("ListPrice")[0].childNodes[0].nodeValue >= filterPrL
&& item.getElementsByTagName("ListPrice")[0].childNodes[0].nodeValue <= filterPrH
&& item.getElementsByTagName("PublicRemarks").text().toLowerCase().contains(filterWord)
) {
和;
&& item.getElementsByTagName("PublicRemarks").indexOf(filterWord)
我已经测试了正在通过的关键字,并且我已经检查了它们是否在被搜索的记录中。
如能提供帮助,我们将不胜感激。
试试这个,因为您使用的是 jQuery:
$(item).find("PublicRemarks").text().toLowerCase().indexOf(filterWord) > -1
$()
会将 item
dom 变成 jquery 对象。然后我们在其中找到 PublicRemarks
标签,提取文本,将其设为小写,然后查找过滤词。如果未找到过滤词,indexOf()
将 return -1
.
只需 javascript,这可以通过遍历集合来完成。可以创建一个函数来执行此操作以降低条件的复杂程度......像这样:
function collectionContains(collection, searchText) {
for (var i = 0; i < collection.length; i++) {
if( collection[i].innerText.toLowerCase().indexOf(searchText) > -1 ) {
return true;
}
}
return false;
}
我有属性搜索功能,允许我搜索卧室、浴室、价格(高价和低价)的数量,我也试图让它告诉我客户是否搜索了一个或多个词,在记录中。比如 "River" 之类的。
我一直在玩 .contains() 和 .indexOf(),但都无法正常工作。以下是我尝试过的一些;
for (var i=0;i<x.length;i++)
{
var item = x[i];
if (item.getElementsByTagName("Bedrooms")[0].childNodes[0].nodeValue >= filterBed
&& item.getElementsByTagName("BathsTotal")[0].childNodes[0].nodeValue >= filterBath
&& item.getElementsByTagName("ListPrice")[0].childNodes[0].nodeValue >= filterPrL
&& item.getElementsByTagName("ListPrice")[0].childNodes[0].nodeValue <= filterPrH
&& item.getElementsByTagName("PublicRemarks").text().toLowerCase().contains(filterWord)
) {
和;
&& item.getElementsByTagName("PublicRemarks").indexOf(filterWord)
我已经测试了正在通过的关键字,并且我已经检查了它们是否在被搜索的记录中。
如能提供帮助,我们将不胜感激。
试试这个,因为您使用的是 jQuery:
$(item).find("PublicRemarks").text().toLowerCase().indexOf(filterWord) > -1
$()
会将 item
dom 变成 jquery 对象。然后我们在其中找到 PublicRemarks
标签,提取文本,将其设为小写,然后查找过滤词。如果未找到过滤词,indexOf()
将 return -1
.
只需 javascript,这可以通过遍历集合来完成。可以创建一个函数来执行此操作以降低条件的复杂程度......像这样:
function collectionContains(collection, searchText) {
for (var i = 0; i < collection.length; i++) {
if( collection[i].innerText.toLowerCase().indexOf(searchText) > -1 ) {
return true;
}
}
return false;
}