2016-03-19 21 views
1

だから私はこのコードを持っている:非効率的なjQueryの使い方

$("#contact_seller .modal-content").addClass('has-error'); 
$("#contact_seller span").empty(); 
$("#contact_seller textarea").focus().after("<span>Please be more precise about what You want to ask</span>"); 

をしかしWebstormが、これは非効率的なjQueryの使用方法であること、を示しています。私が読んだ限りでは、コードをもっと短くするために.find()をする必要があります。だから私はそれがこのような何かを行く必要thikingた:

$("#contact_seller") 
      .find('.modal-content').addClass('has-error') 
      .find('span').empty() 
      .find('textarea').focus().after("<span>Please be more precise about what You want to ask</span>"); 

しかしobvioslyこのコードは正しく動作していないが(私は(見つけると仮定)ごとに次の項目を選択し、私はそれが唯一の親要素をslectたいです)。

このコードをどのように正しく書き込む必要がありますか?

+0

ちょうどWebstormを無視して、あなたのorigionalコードを使用することができます。 –

答えて

3

endする代わりに、あなたは常に...

var container = $("#contact_seller"); 
container.find(".modal-content").addClass("has-error"); 
container.find("span").empty(); 
container.find("textarea").focus().after("<span>Please...</span>"); 
1

end()呼び出しがありません。これは動作するはずです:

$("#contact_seller") 
     .find('.modal-content').addClass('has-error').end() 
     .find('span').empty().end() 
     .find('textarea').focus().after("<span>Please be more precise about what You want to ask</span>"); 
1

てみ

var elem = $("#contact_seller"); 
elem.find(".modal-content").addClass('has-error'); 
elem.find("span").empty(); 
elem.find("textarea").focus().after("<span>...</span>"); 

あなたは.end()を使用することができますが、end()が逆ルックアップを行いますし、それが追加され、このコードは、より効率的である、以下のようにそれを書くためにあなたの文脈では負担です

関連する問題