我正在尝试获取整个div内容,并使用document.getElementById显示在警报消息中。在IE 8和9中运行正常,但在IE 10和11中则无法正常运行。

以下是正在使用的代码段。

<body>
  <div id="oDiv1"><input type="text" ></div>
  <div id="oDiv2">Div #2</div>
  <div id="oDiv3">Div #3</div>
  <input type="button" value="Show First DIV Content" onclick="fnGetId()">
</body>


JavaScript代码

<script type="text/javascript">
     function fnGetId() {
             var oVDiv=document.getElementById("oDiv1").innerHTML;
             alert(oVDiv);
    }
</script>


在该文本框中输入一些文本。在IE 8和9中,它采用oDiv1内容以及我输入的文本。像下面

<input type="text" value="aaa">


但是在IE 10和11中,它采用输入标签而不是我输入的值。

<input type="text" value="">


我要去哪里错了?如何获取内容以及在IE11中输入的值?

最佳答案

因为您没有获得正确的价值,也没有获得正确的要素。这是一个hacky解决方案。

var oVDiv=document.getElementById("oDiv1").children[0].value;


更好的模式是创建一个真实的表单,并在提交时序列化表单值。

JSfiddle example

关于javascript - document.getElementbyId在IE 11中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27704965/

10-16 18:27