Javascript 使用AJAX或类似技术缩小现有列表的范围
希望我能解释清楚这一点,通过搜索我在标题中使用的术语,我能找到的最多的术语给出了很多自动完成的例子,但没有什么完全符合我的要求。我有一个按钮列表(它们现在被编码为输入),我想添加一个搜索字段,当用户在搜索字段中键入时,该字段将缩小按钮的范围 比如说,我有30个流行网站的按钮。如果有人想退出谷歌,他们会开始输入,首先输入所有带有字母“G”的内容,然后输入“O”,等等。其他所有内容都会从页面中“消失” 我可以想出一种手动执行的方法,但我认为我的代码不会太枯燥。可能设置一个“开”和“关”ID,并使用CSS显示:无或类似的内容Javascript 使用AJAX或类似技术缩小现有列表的范围,javascript,html,css,ajax,Javascript,Html,Css,Ajax,希望我能解释清楚这一点,通过搜索我在标题中使用的术语,我能找到的最多的术语给出了很多自动完成的例子,但没有什么完全符合我的要求。我有一个按钮列表(它们现在被编码为输入),我想添加一个搜索字段,当用户在搜索字段中键入时,该字段将缩小按钮的范围 比如说,我有30个流行网站的按钮。如果有人想退出谷歌,他们会开始输入,首先输入所有带有字母“G”的内容,然后输入“O”,等等。其他所有内容都会从页面中“消失” 我可以想出一种手动执行的方法,但我认为我的代码不会太枯燥。可能设置一个“开”和“关”ID,并使用C
我认为最好的方法是通过AJAX,但可能有一些javascript巫术更适用。简单。首先,如果所有数据都已在用户端,则无需过滤服务器端的答案。此外,您不应该编写html并使用js进行过滤,您应该使用js编写html并生成html输出。让我们从结构开始:
var links=[
{
name:"google",
url:"http://google.com"
},
{nextone}
];
现在以html格式生成链接:
window.onload=function(){
var container=document.body;//change this to your needs
for(i=0;i<links.length;i++){
var link=links[i];
link.html=document.createElement("a");
link.html.innerHTML=link.name;
link.html.src=link.url;
container.appendChild(link.html);
}
};
您可以将其绑定到输入:
yourinput.addEventListener("onchange",function(){filter(this.value)},false);
很容易。首先,如果所有数据都已在用户端,则无需过滤服务器端的答案。此外,您不应该编写html并使用js进行过滤,您应该使用js编写html并生成html输出。让我们从结构开始:
var links=[
{
name:"google",
url:"http://google.com"
},
{nextone}
];
现在以html格式生成链接:
window.onload=function(){
var container=document.body;//change this to your needs
for(i=0;i<links.length;i++){
var link=links[i];
link.html=document.createElement("a");
link.html.innerHTML=link.name;
link.html.src=link.url;
container.appendChild(link.html);
}
};
您可以将其绑定到输入:
yourinput.addEventListener("onchange",function(){filter(this.value)},false);
看看Angular JS主页上的第三个例子——它是一个过滤列表的开始,因此你可以添加一个带有onkeyup/oninput监听器的文本框,读取文本框值,选择按钮,在集合上循环,并隐藏那些没有部分匹配文本的文本…所以。。。你想让我们给你写点什么?杀死一些小鸡?看看Angular JS主页上的第三个例子——它是一个过滤列表的开始,所以你可以添加一个带有onkeyup/oninput侦听器的文本框,读取文本框值,选择按钮,在集合上循环,并隐藏没有部分匹配文本的文本…所以。。。你想让我们给你写点什么?杀鸡?