未捕获的TypeError:无法读取null的属性'style' - JS错误

时间:2014-08-11 03:10:57

标签: javascript jquery null styles document

我从我的控制台收到一条javascript错误:

  

未捕获的TypeError:无法读取属性' style'为null

有谁知道什么是错的?

代码(JS):

<script>
    function select()
    {
        document.getElementById('#iframetest').style.display='block';
    }

</script>

代码(HTML):

<iframe src="localhost/createaclass" id="iframetest"></iframe>

<div class="b" onclick="select()">

4 个答案:

答案 0 :(得分:9)

不要将哈希放在id(#)中:

document.getElementById('iframetest')

根据您的评论,您可以这样做:

function select()
{
   document.getElementById('iframetest').style.display = 'block' ? 'none' : 'block';
}

答案 1 :(得分:2)

将您的JS移到HTML下方。

<iframe src="localhost/createaclass" id="iframetest"></iframe>
<div class="b" onclick="select()">

<script>
  function select()
  {
    document.getElementById('#iframetest').style.display='block';
  }
</script>

答案 2 :(得分:0)

如果您使用的是jquery,请尝试此操作。它正在工作。

$('.b').click(function(){
$('#iframetest').hide();
});


<iframe src="localhost/createaclass" id="iframetest"></iframe>
<div class="b">selectDiv</div>

请参阅jsfiddle链接http://jsfiddle.net/17duuxcm/5/

答案 3 :(得分:0)

回答它可能为时已晚。但是你的选择器返回null,因为在这一行

document.getElementById('#iframetest').style.display='block';

您需要将其更改为:

document.getElementById('iframetest').style.display='block';

当您指定getElementById时,您的JS将直接转到id为&#39; iframetest&#39;的元素。不需要&#39;#&#39;