考虑使用JavaScript函数向页面添加HTML元素。在该函数中,需要指定HTML元素的行。但是,如果这个HTML很复杂,那么它可能会让你的代码看起来丑陋难调。请看下面的例子(玩注意ul.innerHTML等):在Javascript函数中组织HTML内容
function addHTMLField(area,limit) {
var field_area = document.getElementById(area);
var all_inputs = field_area.getElementsByTagName("ul");
var last_item = all_inputs.length - 1;
var last = all_inputs[last_item].id;
var count = Number(last.split("_")[1]) + 1;
if(count > limit && limit > 0) return;
if(document.createElement) { //WC3 Dom method
var ul = document.createElement("ul");
ul.innerHTML = "<ul style='margin-top: 10px' id='blog_"+count+"'><li>Blogname:<br/> <input type='text' name='blog["+count+"][name]' size='40' /></li><li>Blog Title:<br/> <input type='text' name='blog["+count+"][title]' id='blogtext_"+count+"' size='40' /></li><li>Username:<br/> <input type='text' name='blog["+count+"][username]' id='blogcategory_"+count+"' size='40' /></li><li>E-Mail:<br/> <input type='text' name='blog["+count+"][email]' id='blogcategory_"+count+"' size='40' /> <br/><small>A new user will be created if the above email address is not in the database. <br/>The username and password will be mailed to this email address. </small></li><li><input type='button' value='Remove Blog' onclick=\"removeItem('blog_"+count+"')\"> </li></ul>";
field_area.appendChild(ul);
} else {
alert('an error occurred in the addLinkField function');
}
}
是否有比这更好的方式来组织内部的Javascript功能HTML?请注意,由于某些字段是动态填充的,因此我无法将所有HTML都放在Javascript外部。
感谢您的任何见解。
为什么不为所有的子节点使用document.createElement而不是设置ul.innerHTML? – vit 2010-01-04 11:43:26