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

时间:2013-07-25 15:47:47

标签: jquery

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

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++;
});

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

3 个答案:

答案 0 :(得分:7)

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

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

在以下迭代中,它将是undefined++,即NaN,但仍无效。

这显然不起作用。解决方案是在第一个循环中将i设置为1(或者是必要的值):

var i = 1;

答案 1 :(得分: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

答案 2 :(得分: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
});