假设我们x在页面上有一个DIV ,我们想要将该DIV的内容复制("复制粘贴")到另一个DIV中y.我们可以这样做:
y.innerHTML = x.innerHTML;
Run Code Online (Sandbox Code Playgroud)
或者使用jQuery:
$(y).html( $(x).html() );
Run Code Online (Sandbox Code Playgroud)
但是,看起来这种方法不是一个好主意,应该避免.
(1)为什么要避免这种方法?
(2)应如何做呢?
更新:
为了这个问题,让我们假设DIV中没有ID的元素x.
(对不起,我忘了在原来的问题中报道这个案子.)
结论:
我已经在下面发布了我自己的答案(正如我原先的意图).现在,我也计划接受我自己的答案:P,但是我的答案是如此惊人,以至于我不得不接受它.
这里,这里和这里以及其他地方有几个问题/答案,但它们都看起来特定于JQuery并且似乎不适用于此(例如,我不是创建一个新的Form对象,这是一个现有的表单,同时我根本不使用Jquery.
我有一个表单,由于IE7兼容性的原因,在提交之前必须进行修改.我必须BUTTON从表单中删除所有标记,然后添加一个隐藏字段,但这都是现有HTML页面上的现有表单.此代码在IE和Chrome中正常运行,但在Firefox中不起作用(版本23和24都经过测试).
buttonClickFunction(formName, buttonObject) {
var formObject = document.forms[formName];
var i = 0;
// Strip out BUTTON objects
for (i=0;i<formObject.length;i++) {
if (formObject[i].tagName === 'BUTTON') {
formObject[i].parentNode.removeChild(formObject[i]);
i--;
}
}
// Create new field
var newField = document.createElement('input');
newField.type = 'hidden';
newField.id=buttonObject.id;
newField.name = buttonObject.name;
if (buttonObject.attributes['value'] != null) {
newField.value = buttonObject.attributes['value'].value;
} else {
newField.value = buttonObject.value;
}
// Submit form
formObject.appendChild(newField);
document.forms[formName].appendChild(newField);
document.forms[formName].submit();
}
Run Code Online (Sandbox Code Playgroud)
除了document.forms[formName].submit() …