通过使用 getElementsClassName 的 replaceChild 访问 oldChild,Javascript,DOM

Access to oldChild by replaceChild with getElementsClassName, Javascript, DOM

如何访问旧节点并替换它?

我的 XHTML 有这样的结构:

<table id="output">
 <tr>
   <td>Sometext</td>
   <td>...</td>
   <td>...<td>
 </tr>
 <tr class="CLASSNAME">
   <td class="ElemKat">text</td>
   <td class="ELEM">...</td>
   <td class="EL">...</td>
 </tr> 
  <tr class="CLASSNAME">
   <td class="ElemKat">text2</td>
   <td class="ELEM">s</td>
   <td class="EL">sss</td>
 </tr> 
</table>

我有这么多 类,因为元素是动态创建的,所以 ID 不是变体。

以及出现错误的函数(错误作为注释):

var sort=function(cmpFunc) {

    var table=document.getElementById("output");
    var kat=document.getElementsByClassName("ElemKat");
    var elem_kat=new Array();
        for(var i=0; i<kat.length; i++) {
            elem_kat.push(kat[i]); 
        }
        var elem_kat_old=new Array();
        elem_kat_old=elem_kat;
        elem_kat.sort(cmpFunc);

   for(var j=0; j<elem_kat.length; j++) {
    //table=elem_kat_old[j].parentNode; ->No error,but no change in the output
    table.replaceChild(elem_kat[j],elem_kat_old[j]); //Node was not found
    }
    }

而不是 elem_kat_old = elem_kat;,试试这个:

elem_kat_old = elem_kat.slice(0)

将一个数组分配给另一个数组使得无论你对一个数组做什么,都会发生在另一个数组上。这不完全是引用赋值,但我不能 100% 确定 Javascript 术语是否合适。