6

:nth-childjquery を使用して選択しようとしていますが、構文エラーが表示されます。

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そして、2番目のセレクターは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 に答える