Есть такой код:
<span title="Just span elem">
<i class="logo-icon">
//some logo
</i>
"10.00"
</span>
Мне нужно с помощью JS изменять значение в span
. Делаю это так: var span = document.getElementsByTagName('span')[1].innerHTML = "11.12";
Все работает, но лого тоже пропадает когда меняю значение. Как можно его поменять, что бы при этом лого осталось на месте?
Наверное проще всего:
var currentHTML = document.getElementsByTagName('span')[1].innerHTML;
var currentHTML = currentHTML.slice(0,-5);
document.getElementsByTagName('span')[1].innerHTML = currentHTML+"11.12";
Оператор +=
должен помочь так как он добавит данные в элемент, а не заменит их. Ответ на эту тему уже дан, но я могу предложить лишь сократить его код:
document.getElementsByTagName('span')[1].innerHTML += "11.12";
Если внутри элемента уже есть данные то ваш код неоптимальный. Я бы посоветовал добавить еще один блок <span>
внутри данного и работать с ним напрямую вашим же кодом, так будет проще чем изобретать велосипед заново делая поиск картинки в элементе и отделяя ее от прочего содержимого тега что бы исправить лишь 5 символов.
HTML:
<span title="Just span elem">
<i class="logo-icon">
//some logo
</i>
<span id="number">10.00</span>
</span>
JS:
document.getElementsById('number').innerHTML = "11.12";
/*
определяем DOM узел в переменную node
node.childNodes -- коллекция дочерних элементов узла
node.childNodes[node.childNodes.length-1] -- последний узел
textContent --- строка
*/
var node = document.getElementsByTagName('span')[0]
node.childNodes[node.childNodes.length-1].textContent = "11.12"
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Делаю небольшой проект на Angular 4 + PrimeNGВ шаблоне одного из компонентов используем компонент ToolTip