2009-08-17 8 views
16

Biorąc to poniższy przykładowy kod który klonów wiersza tabeli, określa pewne właściwości, a następnie dołącza je do tabeli:Czy istnieje preferowany sposób formatowania łańcuchów jQuery, aby uczynić je bardziej czytelnymi?

$("#FundTable").append(
    objButton.parents("tr").clone() 
     .find(".RowTitle").text("Row " + nAddCount).end() 
     .find(".FundManagerSelect").attr("id", "FundManager" + nAddCount) 
           .change(function() { ChangeFundRow(); }).end() 
     .find(".FundNameSelect").attr("id", "FundName" + nAddCount).end() 
); 

Czy ktoś ma jakieś sugestie co do tego, jak może to być sformatowany być łatwiejsze w oku? Czy istnieje jakakolwiek akceptowana konwencja dla tego?

Przydałby się zestaw reguł, których można przestrzegać i które można włączyć do zestawu standardów.

Odpowiedz

23

Chciałbym to zmienić. Znajdę więcej niż 3 przykuty metody niespokojne w oku

 var $clonedRow = objButton.parents("tr").clone(); 

     $clonedRow.find(".RowTitle") 
       .text("Row " + nAddCount); 

     $clonedRow.find(".FundManagerSelect") 
       .attr("id", "FundManager" + nAddCount) 
       .change(ChangeFundRow); 

     $clonedRow.find(".FundNameSelect") 
       .attr("id", "FundName" + nAddCount); 

     $clonedRow.appendTo("#FundTable"); 
+2

mi się podoba, ponieważ odzwierciedla moje podejście do regex - mając jedną uber-regex jest często mniej zrozumiały niż 2-3 mniejsze bite o rozmiarach –

+3

To jest znacznie lepsze. Tylko dlatego, że * możesz * łączyć, nie znaczy, że * musisz *. –

+1

Zawsze się nad tym zastanawiałem, muszę przyznać. Moja nerwowość z tym podejściem polega na tym, że buforujesz zmienną, która jest już buforowana (na stosie łańcucha). Biorąc pod uwagę, że niektóre z nich mogą być dość duże, czy nie lepiej jest łańcuchować, czy jest to dopuszczalne obciążenie? –

4

Jak o:

$("#FundTable").append(
    objButton.parents("tr").clone() 
     .find(".RowTitle").text("Row " + nAddCount) 
     .end() 
     .find(".FundManagerSelect").attr("id", "FundManager" + nAddCount) 
     .change(function() { 
      ChangeFundRow() 
     }) 
     .end() 
     .find(".FundNameSelect").attr("id", "FundName" + nAddCount) 
     .end() 
); 

Uważam, że łańcuchowym, gdy są stosowane w moderacji, może prowadzić do lepszej czytelności.

2

Nie łańcuch tyle.

var newContent = objButton.parents("tr").clone(); 

newContent.find(".RowTitle").text("Row " + nAddCount) 
newContent.find(".FundManagerSelect").attr("id", "FundManager" + nAddCount) 
    .change(function() { ChangeFundRow() }); 
newContent.find(".FundNameSelect").attr("id", "FundName" + nAddCount); 

$("#FundTable").append(newContent); 

Mniejsza liczba łańcuchów, ale łatwiej jest odczytać imo.

13

ja wciąć tak, jakby były w nawiasie:

$("#FundTable") 
    .append(objButton.parents("tr") 
     .clone() 
     .find(".RowTitle") 
      .text("Row " + nAddCount) 
     .end() 
     .find(".FundManagerSelect") 
      .attr("id", "FundManager" + nAddCount) 
      .change(function() { 
       ChangeFundRow(); // you were missing a semicolon here, btw 
      }) 
     .end() 
     .find(".FundNameSelect") 
      .attr("id", "FundName" + nAddCount) 
     .end() 
    ) 
; 
+0

Tracę fakt, że coś jest dołączane do finansowania tutaj. – redsquare

+1

można podzielić i dodać dodatkowy poziom wcięcia na linii 2 tam – nickf

Powiązane problemy