innerHTML в IE?

У меня возникли проблемы с использованием innerHTML с моей кнопкой типа радио.

<table align="center"> <div class='main'> <span id="js" class='info'> <label><input type="radio" name="js" value="0" size="<?php echo $row['size']; ?>" onclick="js(this.value, this.size);" /><img src="arrowup.png"/></label> <br /> <label><input type="radio" name="js" value="1" size="<?php echo $row['size']; ?>" onclick="js(this.value, this.size);" /><img src="arrowdown.png"/></label> </span> </div> </table> 

Мой .js выглядит так:

 var xmlhttp; function getVote(a,b) { xmlhttp=GetXmlHttpObject(); if (xmlhttp==null) { alert ("Browser does not support HTTP Request"); return; } var url="js.php"; url=url+"?js="+a; url=url+"&id="+b; url=url+"&sid="+Math.random(); xmlhttp.onreadystatechange=stateChanged; xmlhttp.open("GET",url,true); xmlhttp.send(null); } function stateChanged() { if (xmlhttp.readyState==4) { document.getElementById("js").innerHTML=xmlhttp.responseText; } } function GetXmlHttpObject() { var objXMLHttp=null; if (window.XMLHttpRequest) { objXMLHttp=new XMLHttpRequest(); } else if (window.ActiveXObject) { objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP"); } return objXMLHttp; } 

Это не работает только в IE! Любая помощь?

Related of "innerHTML в IE?"

во-первых, достаточно уверен, что DIV непосредственно внутри TABLE является незаконной разметкой.

не используйте незаконную разметку. браузеры будут по-разному реагировать на это (я недавно использовал Opera, игнорируя некоторые незаконные вещи с IE, пытающимися их отобразить).

IE, как правило, заслуживает этого, сначала получите правильную разметку, а затем посмотрите, как работает IE. возможно, он не смог выполнить DOM, как вы ожидаете.

(FWIW есть проблема с внутренним преобразованием HTML, с которой я столкнулся с IE, http://support.microsoft.com/kb/276228/ , но для элемента SELECT, поэтому я не думаю, что это применимо здесь).

Проблема была действительно innerHTML на теге таблицы. IE не поддерживает innerHTML, обернутый вокруг тега таблицы, и они не намерены разрешать эту проблему в своих будущих выпусках.

Обходным путем является либо использование методов DOM, либо самый простой способ: оберните таблицу вокруг div.

Поэтому я закончил:

 <div id="js" align="center"><table> <span class='main'> <a onClick="getVote(this.value, this.size);" type="radio" value="0" size="<?php echo $row['id']; ?>" /><img src="arrowup.png"/></a> <br /><a onClick="getVote(this.value, this.size);" type="radio" value="1" size="<?php echo $row['id']; ?>" /><img src="arrowdown.png"/></a> </span> </table></div> 

Есть еще одна ошибка IE, которая закручивает ярлык, если они настроены на изображение. Просто голова! Я знаю, что вы не будете удивлены, когда я скажу, что IE отстой!

Я знаю, что это немного поздно, но вот как исправить эту проблему с помощью jQuery:

 $("#tableName").html(DataToWrite);