我需要创建多个保存数据的表。所有表格都包含相同的字段,但每个表格的数据都是使用 jQuery 和 Javascript 从 XML 文件中解析出来的。目前我的设置是在 HTML 中创建我的格式化表格,其中“id”字段标识将放置 XML 数据的区域。例如……
主要 HTML:
<body id="top">
</body>
模板 HTML:
<table id="sectionTable" border="1" cellpadding="10" cellspacing="1" width="100%">
<tr><td id="information"></td></tr>
</table>
Javascript 加载模板:
$('#top').load('template.html #sectionTable');
这会获取 HTML 文件(在本例中为 template.html)中 ID 为“sectionTable”的元素,并将其插入到 ID 为“top”的元素主体中,该元素是 html 页面的主体。
Javascript 将 XML 数据放入表中: 我能够很好地解析和存储 XML 数据,然后将其存储到一个变量中。然后,我将此数据附加到适当的 html ID 标记...
var title = <from XML>; //Lets say in this case title="My Stack Title"
...
$(#information).append(title);
生成的 HTML:
<table id="sectionTable" border="1" cellpadding="10" cellspacing="1" width="100%">
<tr>
<td id="information">My Stack Title</td>
</tr>
</table>
这种方法的问题在于,当我遍历 XML 的多个部分并使用这种技术时,它不会创建新的 HTML 表格,而是会覆盖现有数据,因为我使用了相同的 ID。
我知道通过使用 DOM 对象我可以解决这个问题,但我的问题是虽然这是一个简单的示例,但我的表非常复杂,具有多个级别、样式等。这将需要很多对象正确地相互创建和嵌套,这对于其他用户将来很难改变(很有可能)。使用模板方法很容易跟踪所有内容的去向。如果有一种方法可以根据遍历 XML 数据的索引在 HTML 中放置唯一 ID,那将解决问题,但我还没有想出如何实现这一点。
有什么建议吗?谢谢!
最佳答案
尝试将您的 id="information"更改为类,然后遍历类“information”的每个元素。
$('.information').each(function(n,c){
$(this).append(title);
})
使用 id 只会查询该 id 的第一个元素。尚未对此进行测试,但请试一试。
关于javascript - 使用 Javascript 创建可重复的 HTML 表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11004089/