Метод замены прототипа дает нулевую ошибку - PullRequest
3 голосов
/ 26 января 2011

Я новичок в прототипе, но довольно опытный с jQuery, так что, может быть, я неправильно понимаю, как работает прототип.Я пытаюсь сделать следующее

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

, но я получаю TypeError: Cannot read property 'firstChild' of null

Когда я выполняю $$("tr.total_line td.total_cell").first() в консоли JS, я получаюРезультат элемента DOM.

Вот соответствующая разметка

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

Ответы [ 2 ]

2 голосов
/ 26 января 2011

Поскольку .first() возвращает элемент <td>, вам необходимо вставить <td> или <th>, чтобы замена была действительным HTML.

Так что если newTotalэто:

"<td>$100</td>"

... это должно работать.Но если это просто:

"$100"

... это не так.

Или другой вариант - заменить innerHTML из <td>:

$$("tr.total_line td.total_cell").first().innerHTML = newTotal;
0 голосов
/ 26 января 2011

Если replace продолжает вызывать проблемы, вы можете попробовать update, который работает аналогичным образом.

...