为什么&此脚本返回的位置未定义
Why & Where Is This Script Returning Undefined?
我正试图使用以下代码将#
(标签)附加到URL,以关闭使用CSS :target
属性构建的灯箱。这个脚本在'esc'键的keydown上执行得很好,但只返回example.com/#undefined
而不是example.com/#
。
我很抱歉是一个JS初学者,但我如何定义它只返回单个#
?
$( document ).on( 'keydown', function ( e ) {
if ( e.keyCode === 27 ) {
var href = this.href;
window.location.hash = href;
}
});
返回#undefined
而不是仅返回#
。
答案是,在处理程序中,this
指的是没有href
属性值的document
对象。因此,您的href
变量具有值undefined
,因此哈希被更新为undefined
。
现在,这个问题的解决方案将取决于问题中没有分享的细节,比如html是什么样子的,它应该何时以及如何工作等等
如果你想得到目标元素的href
,那么你可以使用
var href = e.target.href || '';
或
var href = $(e.target).closest('[href]').attr('href') || '';
相关文章:
- 如何将返回的值应用于多个不同位置的多个选择器
- 为更改的输入返回插入符号位置的逻辑
- float's未返回到移动视图结束后的位置
- Sammy.js缓存和滚动位置时,返回历史
- 谷歌位置api获取细节,并不是每个地方都返回
- 在从索引位置返回的字符串中查找空白
- 为什么 javascript 返回对象位置 true 或 false
- 地理位置无法返回确认
- 需要呈现MongoDB查询返回结果的特定索引/位置
- 计算地理位置距离返回 NaN
- 为什么&此脚本返回的位置未定义
- JSON获取地理位置在HTML中未返回值
- 如何解析html以删除元素并只返回其位置的标题
- 当向上滚动时,使Div返回到其原始位置
- 谷歌自动完成API首先返回我所在州的位置;预期的“;地方
- Javascript 函数返回位置 [0] 中的整个数组
- 打开/返回位置权限对话框
- 如果php返回位置头,我如何在jquery ajax中定位页面
- 领英Javascript SDK无法返回位置
- Deezer JS API返回位置:http://www.mydomain.com.br/dz/channel.html