Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chrome上区分大小写的锚问题_Javascript_Anchor_Typeerror - Fatal编程技术网

Javascript Chrome上区分大小写的锚问题

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

区分大小写的链接在chrome上不起作用。若锚的名称为linkAnchor1,则linkAnchor1将不起作用

我继续寻找解决方案,找到了.toLowerCase函数。 现在我有一个无法解决的新问题:uncaughttypeerror:anchorEl.offset不是函数

  $(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,我相信有很多方法可以做到这一点。。。