javascript - 通过使用 getElementsClassName、Javascript、DOM 的 ReplaceChild 访问 oldChild

标签 javascript dom replace xhtml getelementsbyclassname

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

我的 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 术语。

关于javascript - 通过使用 getElementsClassName、Javascript、DOM 的 ReplaceChild 访问 oldChild,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33907115/

相关文章:

javascript - HTML 表格 : horizontal scroll in a td only when needed

javascript - 如果有 "onselectstart",是否有 "onselectend"?

javascript - 加载后广告 - 使用appendChild移动带有文本链接广告的IFRAME

jquery - 如何在 jQuery 中进行 "simple"查找和替换?

android - 替换字符串中的UTF8字符

javascript - 网格中只有一列的滚动条

javascript - 响应式 Quicktime 播放器

javascript - jquery:尝试理解 next() 函数

javascript - AngularJS 验证和 promise

javascript - 找不到 Ajax 返回的元素