Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   не вставляется значение из переменной с помощью innerHTML (https://javascript.ru/forum/events/75585-ne-vstavlyaetsya-znachenie-iz-peremennojj-s-pomoshhyu-innerhtml.html)

kuchuluk 22.10.2018 14:11

не вставляется значение из переменной с помощью innerHTML
 
Здравствуйте. Нужно вставить в следующую ячейку таблицы значение, записанное в переменную nextVal, но оно не вставляется
$(elem).text(exist.innerHTML);
var nextEl = elem.nextSibling;
var nextVal = exist.nextSibling.innerHTML;
nextEl.innerHTML = nextVal;

А если вместо nextVal запишу просто текст, то вставляется:
nextEl.innerHTML = 'dsfvsds';

Почему так? Почему из переменной значение не вставляется?
Значение nextVal равно "12/20"

Malleys 22.10.2018 14:16

elem.nextSibling необязательно указывает на HTML элемент, это может быть и текстовый узел. Вместо nextSibling вам нужно nextElementSibling

upd
$(elem).text(exist.innerHTML);
var nextEl = elem.nextElementSibling;
var nextVal = exist.nextElementSibling.innerHTML;
nextEl.innerHTML = nextVal;


upd2
может нужно использовать безопасное textContent
<table>
  <tr>
    <td id="elem"></td>
    <td></td>
  </tr>
</table>

<table>
  <tr>
    <td id="exist">1/2</td>
    <td>10/20</td>
  </tr>
</table>

<script>
elem.textContent = exist.textContent;
var nextEl = elem.nextElementSibling;
var nextVal = exist.nextElementSibling.textContent;
nextEl.textContent = nextVal;
</script>

kuchuluk 22.10.2018 14:22

Цитата:

Сообщение от Malleys (Сообщение 496800)
elem.nextSibling необязательно указывает на HTML элемент, это может быть и текстовый узел. Вместо nextSibling вам нужно nextElementSibling

Да все равно не срабатывает.
Сейчас заметил, что не хочет вставлять именно значение со слэшем.
Попробовал так:
var nextVal = "12/20";
nextEl.innerHTML = nextVal;

Все равно не вставляет. А все остальные значения без слэша вставляет. А в nextVal у меня значение в переменной именно со слэшем 12/20. Почему он со слэшем не хочет вставлять?

j0hnik 22.10.2018 14:36

Нужен макет.
у innerHTML со слешем проблем нет, причина в другом месте.

<div id="nextEl"></div>
<script>
var nextVal = "12/20";
nextEl.innerHTML = nextVal;
</script>

Dilettante_Pro 22.10.2018 14:38

<div id="exist"><p>Exist</p></div>
<p>12/20</p>
<div id="elem"></div>
<div></div>
<script>
elem.innerText = exist.innerHTML;
var nextEl = elem.nextElementSibling;
var nextVal = exist.nextElementSibling.innerHTML;
nextEl.innerHTML = nextVal;
</script>


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