javascript - 使用 Javascript 创建可重复的 HTML 表格

标签 javascript jquery html xml

我需要创建多个保存数据的表。所有表格都包含相同的字段,但每个表格的数据都是使用 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/

相关文章:

javascript - 如何使用 javascript 按多列 onkeyup 过滤表格

javascript - window.onbeforeunload 执行查询

jquery - 如何使用 jquery 覆盖 aspx 控件应用的 css?

javascript - 从 dropped li 组件中移除一个输入框

html - 如何链接整个(表格)按钮,而不是仅链接单词?

javascript - 如何在 CKEditor 5 中收听焦点事件

javascript - 如何在 JavaScript 中使一个函数仅在另一个函数完全完成后才启动?

javascript - 如何替换 JavaScript/jQuery 中的动态值?

jquery - 开始上传所有jquery文件上传blueimp

html - 如何在android中准确地使用链接标签中的href属性?