getElementById选择的a标签为什么是链接地址而不是object?

按照官方的解释,getElementById选择的是DOM元素,那么如下代码,选择的div、span、a弹出的都应该是字符串‘object’,可为什么a弹出的却是‘http://www.baidu.com’?怎么解释?

<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script type="text/javascript">
        window.onload = function (){
            var  demoLink = document.getElementById('demoLink');
            var  demoSpan = document.getElementById('demoSpan');
            var  demoDiv = document.getElementById('demoDiv');
            alert(demoLink);
            alert(demoDiv);
            alert(demoSpan);
			
        }
    </script>
</head>
<body>
    <a href="http://www.baidu.com" id="demoLink">这是一个链接</a>
	<span id="demoSpan">这是一个span标签</span>
	<div id="demoDiv">这是一个span标签</div>
</body>
</html>
阅读 8.6k
3 个回答
<a href="http://ooxx.ooxx" id="foo">sample text</a>
<script type="text/javascript">
    var foo = document.getElementById('foo');
    console.log(foo); //打出来就知道了,foo没有问题
    alert(foo); //在这里,关键在于alert这个方法会执行一次toString,javascript中,对HTMLAnchorElement执行toString,得到的就是HTMLAnchorElement.href
    console.log(foo.toString()); // 返回 http://ooxx.ooxx 和alert(foo)一样
</script>

因为调用了toString()这一个方法,而这一个方法又是Native Code的。不过可以自定义的。

如果想输出DIV和SPAN里面的内容
可以用
alert(demoDiv.innerText);
alert(demoSpan.innerText);

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题