故事到此为止......
你好 Stackoverflowers,我又来了!对,我现在正在学习 JQuery,我想构建一个“键入时搜索” AJAX/JSON 控件。所以离开 vie 进入 JSFiddle 构建一个骨架函数并在其上构建,边走边学。在过去的几天里,你帮助了我,所以谢谢你:
现在我只显示与输入匹配的选定列表项。
“所以你现在的问题是什么......”我在这里你呻吟!(是的,我现在有我的电子书!):)
JQuery nOOb 问题第 3 部分:多个选择器。
我一直在使用JQuery Multiple Selectors API 指南,所以我了解如何包含多个选择器,但我的问题是我没有选择任何东西,即:contains没有找到任何东西。这是不正确的吗,我使用了 JSLint 并且它已正确解析且没有错误:
$("li[id^='live'] li:contains('" + this.value + "')").show();
我的完整 JSFiddle 代码在这里,但为了方便起见,我也将其包含在内:
http://jsfiddle.net/garfbradaz/JYdTU/88/
$(document).ready(function() {
var $input = $("#livesearchinput"),
filled = false;
$.ajaxSetup({
cache: false
});
$input.keyup(function(key) {
if (!filled) {
filled = true;
$.getJSON("/gh/get/response.json//garfbradaz/MvcLiveSearch/tree/master/JSFiddleAjaxReponses/", function(JSONData) {
var $ul =
$('<ul>').attr({
id: "live-list"
}).appendTo('div#livesearchesults');
$.each(JSONData, function(i, item) {
$.each(item, function(j, val) {
$('<li>').attr({
id: "live-" + val
}).append(val).appendTo($ul).hide();
});
});
});
}
var n = 0;
if (this.value !== "") {
n = $("li:contains('" + this.value + "')").length;
n2 = $("li[id^='live'] li:contains('" + this.value + "')").length;
console.log("1. value of n2 equals " + n2 + " : " + this.value + "end");
}
else {
n = 0;
}
if (n <= 0) {
$('li[id ^= "live"]').hide("slow");
console.log("1. value of n equals " + n + " : " + this.value + "end");
}
if (n > 0) {
$("li[id^='live'] li:contains('" + this.value + "')").show();
console.log("2. value of n equals " + n + " : " + this.value + "end");
}
});
});</p>
我所做的是放置一个console.log n2 始终为0,这是f12 日志以供证明:
所以我的问题是:
- 我如何更正多重选择器以包含:包含所以我知道未来
- 我什至应该使用 :contains,还是应该以不同的方式处理它并使用.filter()?在发布之前,我正在研究这个问题,并找到了一个很好的堆栈答案,详细说明了这个问题的使用: