2009-08-17 26 views
16

Với này sau mẫu mã mà bắt chước một dòng của bảng, đặt ra một số tài sản và sau đó gắn nó vào một bảng:Có cách nào ưu tiên hơn để định dạng các chuỗi jQuery để làm cho chúng dễ đọc hơn không?

$("#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() 
); 

Có ai có bất cứ đề nghị như thế nào điều này có thể được định dạng để được dễ dàng hơn trên mắt? Có bất kỳ quy ước được chấp nhận nào để thực hiện việc này không?

Sẽ hữu ích khi có một bộ quy tắc có thể được tuân theo và có thể được kết hợp thành một bộ tiêu chuẩn.

Trả lời

23

Tôi sẽ cấu trúc lại điều này. Tôi tìm thấy nhiều hơn 3 phương pháp xích khó chịu trên mắt

 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

Tôi thích video này, bởi vì nó phản ánh cách tiếp cận của tôi để regex - có một uber-regex thường ít dễ hiểu hơn 2-3 cái cắn cỡ nhỏ hơn –

+3

Điều này tốt hơn nhiều. Chỉ vì bạn * có thể * chuỗi không có nghĩa là bạn * nên *. –

+1

Tôi luôn tự hỏi về điều này, tôi phải thú nhận. Lo lắng của tôi với cách tiếp cận này là bạn đang lưu vào bộ nhớ đệm một biến đã được lưu trữ (trên ngăn xếp chuỗi). Cho rằng một số có thể là khá lớn, không phải là nó tốt hơn để chuỗi, hoặc là một chi phí chấp nhận được? –

4

Làm thế nào về:

$("#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() 
); 

Tôi thấy rằng chaining, khi được sử dụng trong chừng mực, có thể dẫn đến khả năng đọc tốt hơn.

2

Đừng xích quá nhiều.

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); 

Ít chuỗi, nhưng có vẻ dễ đọc hơn.

13

tôi thụt như thể nó đã được đặt trong ngoặc vuông:

$("#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

Tôi mất một thực tế là một cái gì đó đang được bổ sung để tài trợ ở đây. – redsquare

+1

bạn có thể tách và thêm một mức thụt lề bổ sung trên dòng 2 ở đó – nickf

Các vấn đề liên quan