Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 原型替换方法给出空错误_Javascript_Prototype - Fatal编程技术网

Javascript 原型替换方法给出空错误

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元素结果 这是相关的标记 <

我不熟悉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 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;