我收到以下错误:
无法识别的表达式::nth-child
以下是与此问题有关的代码:
var path = $("#quickSearchContainer > ul > li:nth-child(i + 1)");
function resetSearch() {
for (i = 0; i < SectorCheck.length; i++) {
console.log(path.text());
console.log(SectorCheck[i]);
if ((path.text()) === SectorCheck[i]) {
path.hide()
}
}
}
请注意:如果我仅将(i + 1)
更改为数字,则可以使用,但这不是必需的。
答案 0 :(得分:1)
我怀疑您正在尝试使用path
索引到i
。如果是这样,那么i
变量的值就不会神奇地插入到选择器中,特别是因为它已经被执行。
要索引到path
,请使用[i]
(获取原始DOM元素)或.eq(i)
(获取位于该位置的jQuery包装器),请参见注释:< / p>
var path = $("#quickSearchContainer > ul > li"); // Removed :nth-child(i + 1)
function resetSearch(){
for (var i = 0; i < SectorCheck.length; i++) {
// ^^^----- remember to declare your variables
// Get the entry for `i` (as a jQuery object)
var entry = path.eq(i);
if (entry.text() === SectorCheck[i]) {
entry.hide()
}
}
}
还要注意,您需要声明i
。您的代码由于没有声明而成为我所谓的The Horror of Implicit Globals的牺牲品。