2017-03-22 5 views
0

jqueryでこのコードを連想させる可能性はありますか?どのように改善することができますか?あなたがチェーンできないjQueryでこのコードをチェーンすることは可能ですか?

$(document).ready(function() { 
    $("ul li:nth-child(2) .collapse-styled").addClass('in'); 
    $("ul li:nth-child(2) .collapse-link a").removeClass('collapsed'); 
}); 
+0

あなたは確かにそれをチェーンすることができますが、読むのはかなり難しくなります。私はちょうど 'ul li:nth-​​child(2)'セレクタをキャッシングし、それを再利用することをお勧めします。 –

答えて

0

号は、二つの要素としての両方のステートメントは、互いに別のブランチにあります。

$(document).ready(function() { 
    var $li = $("ul li:nth-child(2)"); 
    $li.find(".collapse-styled").addClass('in'); 
    $li.find(".collapse-link a").removeClass('collapsed'); 
}); 

注: 技術的には、あなたはドキュメントツリーを上がっていくことによって、それらをチェーンことができますが、それは非常に非効率的であるだろうが、私はそうのような検索時間を短縮するliを保存することをお勧め。 (あなたは一つだけli親を持つ場合)例:

$("ul li:nth-child(2) .collapse-styled").addClass('in').closest("li").find(".collapse-link a").removeClass('collapsed'); 

私はあなたがそれを使用しないでくださいreccoment。

1
$(document).ready(function() { 
    var $listElement = $("ul li:nth-child(2)"); 
    $listElement.find(".collapse-styled").addClass('in'); 
    $listElement.find(".collapse-link a").removeClass('collapsed'); 
}); 
関連する問題