2011-01-26 7 views
3

私はプロトタイプを初めて使いましたが、jQueryでかなり経験がありましたので、プロトタイプの仕組みを誤解している可能性があります。私は、次のプロトタイプの置き換えメソッドがnullエラーを返す

$$("tr.total_line td.total_cell").first().replace(newTotal);

をやろうとしているが、私はJSコンソールで$$("tr.total_line td.total_cell").first()を実行すると、私はDOM要素の結果を得るTypeError: Cannot read property 'firstChild' of null

を取得しています。ここで

.first()以来、関連するマークアップ

<tr class="total_line"> 
    <td colspan="2">Total</td> 
    <td class="total_cell">$50.00</td> 
    <td></td> 
</tr> 
+0

「newTotal」とは何ですか?私はChromeの問題を再現しようとしましたが、それを壊す代わりに働きました。 –

答えて

2

<td>要素を返して、有効なHTMLなるように、交換のためのために<td>または<th>を挿入する必要がありますです。

newTotalがあるのであれば:

"<td>$100</td>" 

...それが動作するはずです。しかし、それだけならば:

"$100" 

...それはありません。

それとも別のオプションは、<td>innerHTMLを置き換えるために、次のようになります。

$$("tr.total_line td.total_cell").first().innerHTML = newTotal; 
+0

これはそれであることが判明しました。私はjQueryに慣れていたので、DOM要素ではなくラップされたオブジェクトを与えていたので、DOMプロパティを使用する必要があることに気づいていませんでした。 'innerHTML'は動作しませんでしたが、何らかの理由で' innerText'が実行されました。 – Vadim

0

replaceは、あなたが同じように働く代わりにupdateを試すことができます問題を引き起こすことが続けば。

関連する問題