因此,点击此处的链接将写入javascript: void(0)
,而不是" a"的对象引用。元素,发生了什么?我可以在href中添加什么来做同样的事情,即不像#那样滚动页面但是会正确地写出引用?
var el = document.getElementById("click");
el.addEventListener("click", (function(el) {
document.write(el);
}).bind(this, el), false);

<a id="click" href="javascript: void(0)">click</a>
&#13;
答案 0 :(得分:1)
document.write()
需要将其参数转换为字符串才能编写它,因此它会调用el.toString()
。 HTMLAnchorElement
会覆盖默认方法并返回href
属性。
您可以通过调用toString()
原型对象的HTMLElement
函数来绕过此功能。
var el = document.getElementById("click");
el.addEventListener("click", (function(el) {
document.write(HTMLElement.prototype.toString.call(el));
}).bind(this, el), false);
<a id="click" href="javascript: void(0)">click</a>