“在上述警报中,我得到了href公司
作为"网址:http://my.domain/open.this.page"
.
这是预期的结果吗?还是我在一个浏览器中得到它,但可能不是在另一个浏览器里?"
这是意料之中的。你得到的原因"网址:http://my.domain/open.this.page"
在警报中,这是默认值.toString()(到字符串)
值为<a>
元素。
这是一个不寻常的案例。其他元素不会将属性显示为.toString()(到字符串)
代表。
如果您想实际使用href公司
,你需要这样做this.toString()
,或参见下文。。。
“…例如,如何获得锚的REL或TITLE部分?”
要获得其他属性或属性,只需按常规方式进行即可。
要获取属性,可以执行以下操作:
onclick=“doStuff(this.getAttribute('title'));return false;”
大多数标准属性直接映射到节点上的属性,因此您也可以这样做:
onclick=“doStuff(this.title);return false;”
或者,由于您处于内联处理程序中,您实际上可以这样做:
onclick=“doStuff(title);return false;”
最后一个可以工作的原因是,从属性分配的处理程序具有唯一的范围链,其中包含元素本身。这意味着元素上的属性实际上显示为变量。
请注意,这不适用于任何其他类型的事件处理程序。
关于这
,它指的是处理程序绑定到的元素。
属性发生的情况是,它基本上成为分配给onclick(单击)
属性。
所以你最终会得到这样的结果:
elem.onclick=函数(事件){doStuff(本);返回false;//onclick属性值}
所以你可以看到这
实际上只是在分配给属性的事件处理程序中找到的正常值。
注意还有一个事件
参数已定义。这意味着您可以这样更改属性:
onclick=“doStuff(this,event);return false;”
…它将传递该参数,因为现在您的函数如下所示:
elem.onclick=函数(事件){doStuff(这个,事件);返回false;//onclick属性值}
所以您可以看到字符串实际上引用了正常事件
函数的参数。
这也适用于较旧的IE。在IE中事件
参数将不会被定义,因此它将选取全局事件
对象。
//--------------v-----无参数elem.onclick=函数(){//v——现在它开始关注全球事件doStuff(这个,事件);返回false;//你的onclick属性值}