2014-08-28 2 views
0

Я уже прочитал несколько сообщений о IE8, вызывающих проблемы с getElementByID, но не смог найти обходное решение. Мой код выглядит следующим образом:IE8 и getElementById не работают хорошо

<script type="text/javascript"> 
//<![CDATA[ 
    function settext(id) { 
    switch(id) { 
      case "0": document.getElementById('text').innerHTML="something"; 
      break; 
      case "1": document.getElementById('text').innerHTML="again something"; 
      break; 
      default: document.getElementById('text').innerHTML="something the third"; 
      break; 
      } 
    } 
//]]> 
</script><select style="width: 145px" onchange="settext(this.value)"> 
<option value="-1">something</option> 
<option value="0">again</option> 
<option value="1">and so on</option> 
</select> 
<table width="100%" border="0" cellspacing="0" cellpadding="5" id="text"></table> 

Он отлично работает с Firefox, Chrome и IE10. Буду рад помочь с этим.

Заранее благодарен!

+0

Уточнитните Безразлично 't хорошо работает :) –

+0

Есть проблемы с 'getElementById' в IE8 ??? – adeneo

+5

Я ничего не вижу с идентификатором «текст». – mason

ответ

0

На IE8 this.value является проблемой, но не getElementById. Я думаю, вы устанавливаете innerHTML на нетекстовый узел.

Попробуйте это - он работает для текстового узла.

UPDATE: Вы не можете установить значение innerHTML за столом, вы должны получить доступ к дочерним клеткам или строк и изменить их так:

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript"> 
    function settext(id) { 
switch(id) { 
      case "0":document.getElementById('text').rows[0].cells[0].innerHTML="something"; 
      break; 
      case "1": document.getElementById('text').rows[0].cells[0].innerHTML="again something"; 
      break; 
      default: document.getElementById('text').rows[0].cells[0].innerHTML="something the third"; 
      break; 
      } 
    } 
</script> 
</head> 
<body> 
<select style="width: 145px" onchange="settext(this.options[this.selectedIndex].value)"> 
<option value="-1">something</option> 
<option value="0">again</option> 
<option value="1">and so on</option> 
</select> 
<table width="100%" border="1" cellspacing="0" cellpadding="5" id="text"><tr><td></td></tr></table> 
</body> 
</html> 

Похожие ответы: https://stackoverflow.com/a/4729743/1960455

+0

К сожалению, это не помогло. – Kendel

+1

, когда вы говорите document.getElementById ('text'), где находится элемент вашей страницы с идентификатором «текст»? – Abhi

+0

В табличном теге. Я редактировал свой пост. – Kendel

Смежные вопросы