无法识别的表达式::nth-​​child

时间:2018-09-27 07:23:56

标签: jquery jquery-selectors

我收到以下错误:

  

无法识别的表达式::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)更改为数字,则可以使用,但这不是必需的。

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的牺牲品。