鉴于以下示例代码克隆表行,设置一些属性然后将其附加到表中:
$("#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()
);
有没有人有任何关于如何将其格式化为更容易上手的建议?这样做是否有任何公认的惯例?
有一套可以遵循的规则是有用的,可以纳入一套标准。
答案 0 :(得分:23)
我会重构这个。我发现超过3种链式方法在眼睛上不舒服
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");
答案 1 :(得分:13)
我缩进,好像它被括起来了:
$("#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()
)
;
答案 2 :(得分:4)
怎么样:
$("#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()
);
我发现链接在审核中使用时,可以提高可读性。
答案 3 :(得分:2)
不要链这么多。
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。