此代码应在每个锚点、按钮和输入元素旁边创建小编号标签。然后它在这些标签上设置点击事件。我已经删除了按钮和锚标记的代码,因为它可以工作并且不相关。
但是,对于输入,应该将光标放在输入元素中,使用该.focus()
方法实现。
但是当我在控制台中针对登录的 gmail.com 运行它时,它什么也不做。注释的alert()
语句将返回[Object HTMLSpanElement]
,无论这意味着什么。如果我取消注释以直接document.getElementById
关注搜索栏,它就可以工作。为什么它不能使用?this
我只是将 gmail 用于测试示例,但这种行为出现在所有页面上,错误始终存在。您可以包含 jQuery 以在控制台中使用this进行测试。
var n = 1;
$('a,button,input').each(function(){
id = n;
//creates numbered tags next to 'a', 'button' and 'input' elements
var a = $(this).offset();
$('body').append('<span class="numTag" id="' + id + '" style="background:white; border: 1px solid black; font-size: 10pt; position:absolute; z-index:999;">' + id + '</span>');
$('#'+id).css({left: a.left - 25, top: a.top});
switch( this.tagName)
{
case 'A':
break;
case 'BUTTON':
break;
case 'INPUT':
$('#'+id).click(function(){
//alert(this);
this.focus();
//document.getElementById('gbqfq').focus();
});
break;
}
n++;
}
});