Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   typeof возвращает значение undefied у строки,которая содержится в ячейке таблицы (https://javascript.ru/forum/events/62550-typeof-vozvrashhaet-znachenie-undefied-u-stroki-kotoraya-soderzhitsya-v-yachejjke-tablicy.html)

Misterdark 16.04.2016 03:23

typeof возвращает значение undefied у строки,которая содержится в ячейке таблицы
 
имеется данный код:
function clue()
{
 var a = (document.getElementById('txt1').value);
 var b = (document.getElementById('td11').value);
 document.getElementById('td11').innerHTML=a+b;
}
[HTML]
<table>
<tr>
<td id="td11">11</td>
<td id="td22">22</td>
<td id="td33">33</td>
</tr>
</table>
<input type="text" id="txt1">
<input type=button value="button" onclick="clue()";>
[/HTML]

Требуется,чтобы по нажатию кнопки текст,введенный в поле, "приклеивался" к содержимому ячейки таблицы.Но вместо этого в ячейке выводит:"введенный текст"undefined.Проверил с помощью typeof,он строку,содержащуюся в ячейке таблицы выводит как undefined.Почему?

Decode 16.04.2016 03:30

Misterdark,
document.getElementById('td11').value заменить на document.getElementById('td11').innerHTML или document.getElementById('td11').textContent

Misterdark 16.04.2016 03:37

Сработало!Спасибо!Но почему value не читает содержимое ячейки?

Decode 16.04.2016 03:38

Потому что у ячейки нет такого св-ва/атрибута.

Misterdark 16.04.2016 03:43

Ясно.У ячейки нет строчного типа данных?Странно...
У меня еще один вопрос.По наведению мыши на ячейки таблицы содержимое ячеек должно помещаться в контейнер div,но по событию ничего не происходит
<table class=ramka>
  <tr>
    <td id="td11" onmouseover="document.getElementById('div').textContent;">11</td>
    <td onmouseover="document.getElementById('div').value;">22</td>
    <td onmouseover="document.getElementById('div').value;">33</td>
  </tr>
  <tr>
    <td onmouseover="document.getElementById('div').value;">44</td>
    <td id="td55" onclick="this.style.display='none';"
	  onmouseover="document.getElementById('div').value;">55</td>
    <td onmouseover="document.getElementById('div').value;">66</td>
  </tr>
  <tr>
    <td onmouseover="document.getElementById('div').value;">77</td>
    <td onmouseover="document.getElementById('div').value;">88</td>
    <td onmouseover="document.getElementById('div').value;">99</td>
  </tr>
<br>
<div class="div" id="div"></div>

destus 16.04.2016 07:26

Цитата:

У ячейки нет строчного типа данных?Странно.
ячейка это не элемент формы
Цитата:

У меня еще один вопрос.По наведению мыши на ячейки таблицы содержимое ячеек должно помещаться в контейнер div,но по событию ничего не происходит
<table class=ramka>
  <tr>
    <td id="td11" onmouseover="document.getElementById('div').textContent += this.textContent;">11</td>
   </tr>
</table>
<br>
<div class="div" id="div"></div>

Misterdark 16.04.2016 07:42

когда водишь курсором по ячейкам таблицы(активируешь событие),цифры начинают нагромождаться,вместо одного аккуратного числа.С этим можно что-нибуть сделать?Поставить какое-то ограничение на длину строки внутри контейнера div?

destus 16.04.2016 07:49

Цитата:

С этим можно что-нибуть сделать?
Можно сделать все что угодно, но зависит от того что надо в задаче. Если при каждом наведении на любую ячейку, содержимое блока должно обновляться, то 3 строчку заменить на
onmouseover="document.getElementById('div').textContent = this.textContent;"

Misterdark 16.04.2016 08:03

Да,то что нужно,спасибо!


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