Подтвердить что ты не робот

Есть ли предпочтительный способ форматирования цепочек jQuery, чтобы сделать их более читаемыми?

Учитывая этот следующий пример кода, который клонирует строку таблицы, задает некоторые свойства и затем добавляет их в таблицу:

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

Есть ли у кого-нибудь какие-либо предложения относительно того, как это можно отформатировать, чтобы быть проще на глазу? Есть ли принятая конвенция для этого?

Было бы полезно иметь набор правил, которым можно следовать, и которые могут быть включены в набор стандартов.

4b9b3361

Ответ 1

Я бы реорганизовал это. Я нахожу более трех цепных методов, непростых на глазу.

       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

I отступ, как будто он заключен в квадратные скобки:

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

Ответ 3

Как насчет:

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

Я нахожу, что цепочка при использовании в модерации может привести к лучшей читаемости.

Ответ 4

Не цепляйтесь так много.

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

Меньше цепочки, но легче читать imo.