我正在尝试使用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++;
});
请检查我的代码,这里缺少什么
答案 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
});