我试图查看.hasAttribute()
方法返回的类型。我有以下代码:
HTML:
<!--
<img id="theimg" src="http://placehold.it/100x100">
-->
JS:
var myimg = document.getElementById("theimg");
var result = myimg.hasAttribute('src');
console.log(typeof result);
我的控制台不断抛出此错误:Uncaught TypeError: Cannot read property 'hasAttribute' of null
有趣的是,一旦我取消评论HTML,myimg
不再为空,.hasAttribute('src');
兴高采烈地返回一个布尔值。
由于.getElementById()
似乎没有找到注释掉的HTMLElements,如何检索注释掉HTMLElements?
我试过了:
.getElementById()
工作,例如通过尝试console.log(document.getElementById("theimg").src);
.getElementById()
上阅读the MDN Documentation,只是说&#34;如果没有给定id的元素,则返回此函数
null
...不会搜索文档中没有的元素 的getElementById&#34;
但肯定是注释掉的文字是文件的一部分!
搜索我找到了this question about accessing a hidden form,但它没有回答我的问题。
答案 0 :(得分:2)
display: block
,它会像其他任何东西一样显示在页面上。
我称这个问题很荒谬,因为它是HTML标记最基本的规则之一。 HTML做的事情,如果你评论它,它什么都不做,就任何人而言,除了你查看源代码时,它都不存在。
答案 1 :(得分:-1)
您的console.log()
方法
你应该连接字符串,只需在字符串和变量之间添加一个+。
我像这样测试它并且它起作用了
<img id="theimg" src="http://placehold.it/100x100">
<script type="text/javascript">
var myimg = document.getElementById("theimg");
var result = myimg.hasAttribute('src');
console.log("type is "+ result);
</script>