Javascript Chrome上区分大小写的锚问题
区分大小写的链接在chrome上不起作用。若锚的名称为linkAnchor1,则linkAnchor1将不起作用 我继续寻找解决方案,找到了.toLowerCase函数。 现在我有一个无法解决的新问题:uncaughttypeerror:anchorEl.offset不是函数Javascript Chrome上区分大小写的锚问题,javascript,anchor,typeerror,Javascript,Anchor,Typeerror,区分大小写的链接在chrome上不起作用。若锚的名称为linkAnchor1,则linkAnchor1将不起作用 我继续寻找解决方案,找到了.toLowerCase函数。 现在我有一个无法解决的新问题:uncaughttypeerror:anchorEl.offset不是函数 $(window).load(function() { var hashVal= window.location.hash.substring(1).toLowerCase(); var ancho
$(window).load(function()
{
var hashVal= window.location.hash.substring(1).toLowerCase();
var anchorEl = $("a[name='"+hashVal+"']").toLocaleString().toLowerCase().split(',');
var elOffset = anchorEl.offset();
var offsetTop = elOffset.top;
$(document).scrollTop( offsetTop - 200);
console.log(offsetTop);
});
它在Firefox上部分工作,除了偏移量值,+200或-200都不会有什么区别。它在导航栏后面,但在Chrome上一英寸也不会移动。尝试下面的方法。首先选择具有name属性的所有a元素,然后选择filer,并与windows哈希进行比较
var anchorEl = $("a[name]").toArray().filter(function(a) {
return $(a).attr('name').toLowerCase() == hashVal.toLowerCase();
});
var elOffset = $(anchorEl).offset();
结帐代码如下。它滚动到300px
$window.loadfunction{
var hashVal=Action;//window.location.hash.substring1.toLowerCase;
var anchorEl=$a[name].toArray.filterfunctiona{
返回$a.attr'name'.toLowerCase==hashVal.toLowerCase;
};
如果锚定长度>0{
var elOffset=$anchorEl.offset;
var offsetTop=elOffset.top;
$document.scrollTopoffsetTop-200;
console.logoffsetTop;
}
};
你知道anchorEl是一个数组,里面有你提供的代码吗。。。试试这个:var anchorEl=$a[name='+hashVal.tolocalString.toLowerCase+']@皮尤沙加瓦尔,谢谢。现在的错误是:TypeError:elOffset是undefinedMy bad,我在考虑与数组关联的本机筛选函数,但是,为了更正您的语句,它不会给出确切的元素,而是返回一个新的jQuery对象,可以是许多元素。但是,我喜欢编辑,对于某些版本的jQuery,请注意a的值可能是索引而不是jQuery对象。@JO3-W3B-D3V,是的,它可能会给出多个对象,但我检查发现jQuery总是返回列表中第一个元素的偏移量。所以它不会显示任何错误。@JO3-W3B-D3V,谢谢您的建议。我会记住这一点。这是非常正确的,但是正如前面所说的,JQueryHardy已经不再使用它了,这个例子实际上不适用于最新版本的jQuery,我相信你必须使用$this,或者以其他方式将对象存储到索引x,我相信有很多方法可以做到这一点。。。