我很疯狂,试图只显示搜索框中的图标。
http://www.rsbdylgy.lucusvirtual.es/main.htm (您可以在相同的html代码中看到“搜索”脚本)
键入“一个” =我需要显示“一个”图标
键入“六个” =我需要显示“ +”图标
换句话说,我需要从HTML中应用2个过滤器:
title="FILTER1"
<li><a href="#" target="_blank">FILTER2</a></li>
我无法解决如此简单的问题,希望有人可以帮助我。
谢谢。
答案 0 :(得分:0)
尝试类似的东西:
function checkEntry() {
var value = $("#myInput").val().toLowerCase();
$("#content1 a.card").filter(function() {
if (this.dataset.toggle === "dropdown") {
// This filters the drop-down links as well, but you may
// just want to decide whether or not to show the "+" card
$(this).parent().find('a:not(.card)').filter(function() {
$(this).toggle(this.text.toLowerCase().indexOf(value) > -1);
})
}
else {
$(this).toggle(this.title.toLowerCase().indexOf(value) > -1);
}
});
};
作为您的“ keyup”事件处理程序。
使用选择器进行操作的方式是选择过多的元素并查看这些元素的text()函数,很少有您想要的值。
我总是觉得使用浏览器的嵌入式开发人员工具很有用,这样您就可以了解发生了什么。
您的选择器正在选择所有这些元素:
>$("#content1 *")
w.fn.init(23) [div.numbers, a.card, img, a.card, img, a.card, img, a.card, img, a.card, img, div.dropdown, a.card.dropdown-toggle, img, ul.dropdown-menu, li, a, li, a, li, a, li, a, prevObject: w.fn.init(1)]
仅查看您真正想要的其中之一,表明text()无法获得'title'属性中所需的信息:
>$($("#content1 *")[1]).text()
""