6

我正在尝试:nth-child使用 jquery 进行选择,但它显示语法错误。

Error: Syntax error, unrecognized expression: :nth-child

这是我的代码

var i;
jQuery('#' + id + ' .tab-pane').each(function (id, t) {
    var n = jQuery(this).attr('id', 'pane-' + t);
    var p_id = n.attr('id');
    jQuery('#' + id + ' .nav-tabs li:nth-child(' + i + ') a').attr('href', p_id);
    i++;
});

请检查我的代码这里缺少什么

4

3 回答 3

8

在第一次迭代中, 没有值i。所以查询看起来像这样:

jQuery('#' + id + ' .nav-tabs li:nth-child(undefined) a').attr('href', p_id);

在接下来的迭代中,它将是undefined++,即NaN,它仍然无法工作。

这显然行不通。解决方案是在第一个循环上设置i为(或任何必要的值):1

var i = 1;
于 2013-07-25T15:51:59.503 回答
1
jQuery('#'+id+' .tab-pane').each(function(id,t){
    var n = jQuery(this).attr('id','pane-'+t);
    var p_id = n.attr('id');
    jQuery('#'+ p_id).find('.nav-tabs li')
                   .eq(id)
                   .find('a')
                   .attr('href', p_id );
}

您可以摆脱它,i因为它id是一个增量。而且我猜第二个选择器应该使用p_id而不是id.

于 2013-07-25T15:50:06.133 回答
1

变量i未赋值 undefined

var i;  //undefined
    jQuery('#'+id+' .tab-pane').each(function(id,t){
    var n = jQuery(this).attr('id','pane-'+t);
    var p_id = n.attr('id');
    jQuery('#'+id+' .nav-tabs li:nth-child('+i+') a').attr('href', p_id );
    i++; //still undefined
});
于 2013-07-25T15:50:22.547 回答