Javascript 返回一个布尔值,以确定搜索项是否与数据标记部分匹配

Javascript 返回一个布尔值,以确定搜索项是否与数据标记部分匹配,javascript,Javascript,我有一个输入元素和许多带有数据标记的元素: <div data-name="Axel Prüfer"></div> <div data-name="The Kernel Brewery"></div> ... 是否有方法返回布尔值,以确定搜索项是否与每个数据标记部分匹配?我打算使用includes(),但这是区分大小写的,例如,它不会将u与u匹配。我可以在这里使用RegEx,或者如果浏览器支持documen

我有一个输入元素和许多带有数据标记的元素:

<div data-name="Axel Prüfer"></div>
<div data-name="The Kernel Brewery"></div>
...

是否有方法返回布尔值,以确定搜索项是否与每个数据标记部分匹配?我打算使用
includes()
,但这是区分大小写的,例如,它不会将u与u匹配。我可以在这里使用
RegEx
,或者如果浏览器支持
document.querySelectAll


document.querySelectorAll('[data name*=“Axel”]'))
//返回布尔值
const found=document.querySelectorAll(“[data name*=“Axel”]”)。长度>0
否则使用jQuery

const found=$('[data name*=“Axel”]')。长度>0

有关更多信息,请参阅。well:还有其他有用的属性选择器,它们对
document.querySelectAll()

的工作方式与Bergi在评论中提到的一样,您对
包括
是错误的。它的工作结果是局部的。我的猜测是,您使用它的方式是反向的:即输入值.includes(数据值),而相反的是您想要的

下面是一个你正在努力完成的工作示例

document.querySelector('#input').addEventListener('keyup',e=>{
让dataDivs=document.querySelectorAll(“[data name]”);
让inputVal=e.target.value.toLowerCase();
对于(让数据div的dd){
让dataVal=dd.attributes['data-name'].value.toLowerCase();
dd.style.display=
inputVal==“无”
:dataVal.includes(inputVal)?“块”
:“没有”;
}
})

阿克塞尔·普吕弗

内核酿酒厂
dataName.includes(搜索)
不需要完整的术语。@Bergi Fair;)我已经更新了我的问题。为了处理案件和案件,你需要在比较之前使双方都正常化。例如,
dataName.toLowercase().includes(search.toLowercase())
,请参阅以了解如何处理umlauts谢谢您的帮助。我希望使用vanilla JS,但也可以使用返回布尔值的东西。
document.querySelectorAll()
是浏览器中的vanilla JavaScript。要返回布尔值,只需执行do
const found=document.querySelectorAll('[data name*=“Axel”]')。长度>0
'Axel', 'Axel Prüfer', 'Prüfer', 'axel Prüfer', 'pruf', 'axe'