通过使用 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 术语是否合适。
如何访问旧节点并替换它?
我的 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 术语是否合适。