Javascript 原型替换方法给出空错误
我不熟悉prototype,但对jQuery有相当的经验,所以我可能只是误解了prototype的工作原理。我试着做以下几点Javascript 原型替换方法给出空错误,javascript,prototype,Javascript,Prototype,我不熟悉prototype,但对jQuery有相当的经验,所以我可能只是误解了prototype的工作原理。我试着做以下几点 $$(“tr.total\u line td.total\u cell”).first().replace(newTotal) 但是我得到了TypeError:无法读取null的属性“firstChild” 当我在JS控制台中执行$$(“tr.total\u line td.total\u cell”).first()时,我会得到一个DOM元素结果 这是相关的标记 <
$$(“tr.total\u line td.total\u cell”).first().replace(newTotal)代码>
但是我得到了TypeError:无法读取null的属性“firstChild”
当我在JS控制台中执行$$(“tr.total\u line td.total\u cell”).first()
时,我会得到一个DOM元素结果
这是相关的标记
<tr class="total_line">
<td colspan="2">Total</td>
<td class="total_cell">$50.00</td>
<td></td>
</tr>
全部的
$50.00
由于.first()
返回一个
元素,您需要插入一个
或
,以使替换内容成为有效的HTML
因此,如果newTotal
为:
"<td>$100</td>"
…事实并非如此
或者另一个选项是替换
的内部HTML
:
如果replace
继续导致问题,您可以尝试update
,其工作方式类似。什么是newTotal
?我试图在Chrome中复制这个问题,但没有解决它,而是成功了。结果就是这样。我习惯于jQuery给我包装对象,而不是DOM元素,所以我没有意识到我需要使用DOM属性innerHTML
不起作用,但由于某种原因,innerText
起作用。
"$100"
$$("tr.total_line td.total_cell").first().innerHTML = newTotal;