Прототип проблема с заменой - PullRequest
0 голосов
/ 11 апреля 2010

на моей html-странице есть следующее:

<div id="rub">
    Select at least one Rub
</div>

В коде скрипта у меня есть

if ( some condition ... )
  $('rub').replace("Rubs selected:");

Что отлично работает, но когда запускается второе событие, в коде у меня есть

if ( some other condition ... )
  $('rub').replace("Selected at least one item:");

Это дает ошибку

 $("rub") is null

Как будто ссылка на потерю была потеряна после первой замены. (Также пробовал с Element.replace с тем же результатом)

Есть какие-нибудь подсказки? Заранее спасибо.

1 Ответ

1 голос
/ 11 апреля 2010

Вы получаете

$("rub") is null

потому что в этот момент вы пытаетесь манипулировать элементом, который больше не существует, потому что вы заменили его текстовым узлом.

Когда вы звоните

$("rubs").replace("Rubs selected:");

Вы берете элемент DIV с идентификатором «rubs» и заменяете его текстовым узлом без идентификатора.

Вам необходимо использовать:

$("rubs").replace("<div id='rubs'>Rubs selected:</div>");

или, возможно, лучше:

$("rubs").update("Rubs selected:");

Помните, что при использовании JavaScript-инфраструктуры, такой как Prototype, документы являются вашими друзьями. Когда у вас возникают проблемы с функцией, первое, что вы должны сделать, это внимательно прочитать документы по этой функции. Я никогда не использовал Prototype в своей жизни, все, что я делал, это проверял документы на функцию, которую вы использовали, и ответ на вашу проблему был прямо в первой строке (чтобы быть справедливым, хотя я вижу, как вы могли его пропустить, если Вы читали документы).

Надеюсь, это поможет.

...