我正在构建一个Web应用程序(使用原型),该应用程序需要在DOM中添加大块HTML。其中大多数是包含具有各种属性方式的元素的行。
目前,我在变量中保留HTML的空白行,
var blankRow = '
'+'{WORD}'
+'
';function insertRow(o) {
newRow = blankRow
.sub('{LINK}',o.link)
.sub('{STRING}',o.string)
.sub('{WORD}',o.word);
$('tbodyElem').insert( newRow );
}
现在一切正常,花花公子,但这是最佳做法吗?
当我更新页面上的代码时,我必须更新blankRow中的代码,因此要插入的新元素相同。当我有40行HTML放入blankRow中时,它变得很烂,然后我也必须对其进行转义。
有更容易的方法吗?我当时考虑过urlencoding,然后在插入之前对其进行解码,但这仍然意味着blankRow和很多转义。
这将意味着PHP等人的eof函数。
$blankRow = <<
text
text
EOF;
那将意味着没有逃避,但仍然需要一个blankRow。
在这种情况下您会做什么?
解决了
最终在原型中使用DOMBuilder。不需要其他库:
$w('a div p span img table thead td th tr tbody tfoot input').each(function(e) {
window['$' + e] = function() {
return new Element(e, arguments[0]);
}
});
newPart = $div({id: 'partition-4'})
.insert( $p()
.insert('Stuff')
)
.insert( $p({
id: 'a-p'})
.insert('More stuff')
);
$('parentDiv').insert(newPart);
在这里或这里查看我的解决方案。