Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Замена текста элемента label сщдержащего другие элементы (https://javascript.ru/forum/events/6357-zamena-teksta-ehlementa-label-sshhderzhashhego-drugie-ehlementy.html)

kostepanych 25.11.2009 14:27

Замена текста элемента label сщдержащего другие элементы
 
Есть:
<label id="showTable" onclick="showRevisions();">
<img class="icon" src="/ImageServlet/adc119526aeedafff0ff748ada8dd6d3/cssimages/compact.png"/>Показать</label>

Как заменить текст "Показать" на другой?

Можно было бы сделать:
var swchLabel = document.getElementById("showTable");
  swchLabel.innerHTML = "<img class='icon' src='/ImageServlet/adc119526aeedafff0ff748ada8dd6d3/cssimages/compact.png'/>Скрыть"

Но мне нехочется так захламлять код, ведь img мне менять не надо.

Kolyaj 25.11.2009 14:32

<label onclick="showRevisions();">
<img class="icon" src="/ImageServlet/adc119526aeedafff0ff748ada8dd6d3/cssimages/compact.png"/><span id="showTable">Показать</span></label>

kostepanych 25.11.2009 16:18

А не меняя html никак нельзя подобраться к этому "Показать"?

Kolyaj 25.11.2009 16:22

Найти соответствующий textNode, но это уж лучше картинку сохранять
var swchLabel = document.getElementById("showTable");
var img = swchLabel.getElementsByTagName('img')[0];
swchLabel.innerHTML = "Скрыть";
swchLabel.insertBefore(img, swchLabel.firstChild);
Как-то так.

subzey 25.11.2009 20:50

Совет: все динамически меняемые тексты обрамляйте тегом span с определенным классом. Так значительно проще добраться до него, а на отображение браузером это не повлияет. (а если повлияет, оторвите руки тому, кто писал css :))

Gozar 26.11.2009 00:02

Цитата:

Сообщение от subzey (Сообщение 36322)
а если повлияет, оторвите руки тому, кто писал css

или себе голову, для верности ;)


Часовой пояс GMT +3, время: 17:44.