在我的 JSP 站点上,我想复制一些 html 元素并重命名它们的属性以生成动态表单。目前我的 javascript 代码如下所示:
function getTemplateHtml(templateType)
{
<%-- Get current number of elements. --%>
var len = $('.form-group').length;
<%-- Clone the correct template. --%>
var $html = $(".template-"+templateType).clone();
<%-- Replace placeholders. --%>
$html.find('[id="PLACEHOLDER.Type"]')[0].id="filters" + len + ".Type";
$html.find('[name="PLACEHOLDER.Type"]')[0].name="filters[" + len + "].Type";
$html.find('[id="PLACEHOLDER.Value"]')[0].id="filters" + len + ".Value";
$html.find('[name="PLACEHOLDER.Value"]')[0].name="filters[" + len + "].Value";
...
return $html.html();
}
由于有20个属性,代码很长,很难维护。有没有办法.replace('PLACEHOLDER', 'filters' + len)
在整个$hmtl
元素上调用类似的东西?
使用一个attribute starts with selector
和attr(attributeName, function)
你也许可以做喜欢的事,一般的:
$html.find('[name^="PLACEHOLDER"]').attr('name', function(i, existingName){
return existingName.replace('PLACEHOLDER', 'filters[' + len +']');
});
我会id
完全摆脱并使用类代替。管理动态 ID 几乎总是比它值得的麻烦
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句