2016-09-09 6 views
2

要素があるとします。<a href="/foo#bookmark">です。私はjQueryを使ってこの要素をハッシュで参照する必要があります。どのように私はJavaScriptを使用してこれを行うだろうか?jQueryを使わずに要素をhref hashで参照する

コード例:ここでは

<a id="foo" href="/foo#bookmark" onclick="exampleFunction(this)">Some text</a> 

<script> 
/** 
* @param {Element} el 
*/ 
function exampleFunction(el) { 
    let bookmarkHash = el.hash, 
     $bookmarkElement = jQuery(bookmarkHash); 

    console.info($bookmarkElement.offset().top); 
} 
</script> 

jQuery(bookmarkHash)参照元<a>ので、私は、要素のオフセットを得ることができます。純粋なJavaScriptでこれをどうすればできますか?

+1

ちょうど '$ bookmarkElement = $(EL)を使用して、のfuctionに要素を渡している;' –

+0

私はまったくのjQueryを使用したくありません。 – ebakunin

+0

@ebakuninあなたはまだ要素を渡していますか?あなたがまだそれを持っているとき、それをハッシュで参照する理由は何ですか? – vlaz

答えて

1

スクリプト内jQuery(bookmarkHash); jqueryはセレクタのみを返します。あなたはそれを簡単に交換することができます。

/** 
 
* @param {Element} el 
 
*/ 
 
function exampleFunction(el) { 
 
    let bookmarkHash = el.hash, 
 
     $bookmarkElement = document.querySelector(bookmarkHash); 
 

 
    /* you will need to figure out the elements offset bit */ 
 
    console.info($bookmarkElement); 
 
}
<a id="foo" href="#bookmark" onclick="exampleFunction(this)">Some text</a> 
 
<div id="bookmark">Hello</div>

+1

'document.querySelector(bookmarkHash)'は私が探していたものです。私は自分の問題をよく説明しなかった。とにかく私に答えをくれてありがとう! – ebakunin

+0

うれしい私は助けることができます。 – colecmc

関連する問題