如何仅在javascript函数内运行代码?

如何仅在javascript函数内运行代码?,javascript,ajax,function,attributes,Javascript,Ajax,Function,Attributes,我正在尝试使用ajax发送innerhtml。发送前必须删除某些属性。当我点击按钮时,我会删除属性并发送…,一切正常,但我的属性也会在html中被删除 它们只应在函数中删除并发送,但不应在html中删除! 如何避免它 代码: 我尝试将代码复制到另一个div,然后删除atributes,但即使这样,html代码中的属性也被删除了 var containercopy = document.getElementById("container").innerHTML; document.

我正在尝试使用ajax发送innerhtml。发送前必须删除某些属性。当我点击按钮时,我会删除属性并发送…,一切正常,但我的属性也会在html中被删除

它们只应在函数中删除并发送,但不应在html中删除! 如何避免它

代码:

我尝试将代码复制到另一个div,然后删除atributes,但即使这样,html代码中的属性也被删除了

    var containercopy = document.getElementById("container").innerHTML;
    document.getElementById("container-copy").innerHTML = containercopy;

我的代码很大,所以我重新编写并给出了一个简单的示例,也许在编写过程中我犯了一个错误…

我不确定这是一个好方法,但您可以在数组中深入克隆元素,然后对其进行更改

参见代码

函数myFunction(){
var divsclass=Array.prototype.slice.call(document.getElementsByClassName(“父”);
var parenthtml=“”;
divsclass.forEach(函数(div){
//克隆
var clonedDiv=div.cloneNode(真);;
from(clonedDiv.queryselectoral(.parent[ondrop]).forEach((elem)=>elem.removeAttribute(“ondrop”);
from(clonedDiv.queryselectoral(.parent[ondragover]).forEach((elem)=>elem.removeAttribute(“ondragover”);
var parenthtmlsend=clonedDiv.innerHTML;
parenthtml++“&parenthtml”+n++“=”+parenthtmlsend;
});
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
}
};
open(“GET”,“same-page.php?”+encodeURI(结果)+parenthtml,true);
xmlhttp.send();

}
另一种方式。当我在函数中删除属性而不是在HTMLMy bad中删除属性时。尝试使用
div.querySelectorAll
而不是
document.querySelectorAll
,我更新了我的答案谢谢你的回复。我替换了但仍然删除了html中的所有内容…您使用deepclone和div.querySelectorAll,但它不起作用?我会试着证明它真的不适用于lodash clone,不知道为什么。但是我们有另一种方法:使用
元素。cloneNode(true)
,我再次更新了我的答案
function myFunction() {
  var divsclass = Array.prototype.slice.call(document.getElementsByClassName("parent"));

  var parenthtml = "";
  divsclass.forEach(function(div){
    Array.from(document.querySelectorAll(".parent [ondrop]")).forEach((elem) => elem.removeAttribute("ondrop"));
    Array.from(document.querySelectorAll(".parent [ondragover]")).forEach((elem) => elem.removeAttribute("ondragover"));
    var parenthtmlsend = div.innerHTML;
    parenthtml += "&PARENTHTML"+ n++ +"=" + parenthtmlsend;
  });

    var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {

            }
        };
        xmlhttp.open("GET", "same-page.php? "+ encodeURI(results) + parenthtml, true);
        xmlhttp.send();

}
    var containercopy = document.getElementById("container").innerHTML;
    document.getElementById("container-copy").innerHTML = containercopy;