【发布时间】:2014-10-08 15:31:36
【问题描述】:
我是一个 jQuery 新手,在 Trac 模板中做一些货物狂热的编程。请原谅这个愚蠢的问题。
Trac 1.0.1(以及可能的其他版本)有一个预览功能,它使用jQuery.replaceWith() 将新元素(不仅仅是新值)放入票证标题中。不幸的是,我有一个 Trac 插件,它通过设置元素的显示来控制元素的可见性,replaceWith() 创建新元素并且不复制它们的属性。理想情况下,我有一个 jQuery 函数,可以将内容从一组元素复制到另一组元素,这样我就可以就地更新现有元素。但是将属性复制到新元素的东西也可以。这可能吗?
假设我拥有(所有它的 ORIG)是:
<tr id='x'>
<td display='none'>ABCD</td>
</tr>
而我从服务器得到的更新(称之为 NEW)是:
<tr id='x'>
<td>QRST</td>
</tr>
替换为后,我的页面最终包含第二个 sn-p。我想要的(称之为 MERGED)是:
<tr id='x'>
<td display='none'>QRST</td>
</tr>
今天执行此操作的代码是:
$("#ticket").replaceWith(items.filter('#ticket'));
我的结局是:
function copyHeaderData(f, t) {
if (f.length != t.length) {
console.log('Shape mismatch');
}
else {
var i;
for (i = 0; i < t.length; ++i) {
t[i].innerHTML = f[i].innerHTML;
}
}
}
// Update ticket box
copyHeaderData(items.filter("#ticket").find("td"), $("#ticket td"));
【问题讨论】:
标签: jquery class element replacewith