2

Tabifier(http://www.barelyfitz.com/projects/tabber/)と呼ばれる気の利いた小さなスクリプトを使用しています

簡単に言うと、headタグで実行するこのスクリプトは、sを含む<ul>withを作成します。また、headタグでは、これらのIDを作成します。ロードされたサイトを調べると、IDタグが存在することがはっきりとわかります。ただし、getElementByIdを使用してそれらを呼び出すことはできません。私は使ってきました<li><a><a>

<script>
    document.getElementById('rightpanelnav1').style.padding='200px';    
</script>

私のコードのさまざまな部分のサンプルスクリプトとしてですが、役に立ちません。IDを認識しない原因となっているのは、コードでこれらが定義されている配置または順序であるかどうか疑問に思っています。どう思いますか?

編集:私は以下の素晴らしい答えを受け取りましたが、それでも「rightpanelnav1」を取得してonclickイベントを登録することはできません...?それは、問題はないはずですよね?それをクリックすると、ページ全体が数秒間読み込まれます...

4

1 に答える 1

4

まず、DOM内の要素にアクセスするには、その要素がDOMの一部である必要があります(document)。したがって、要素がロードされる前の場所のページに<script>withを配置すると、DOMに要素が表示されません。getElementById

次に、使用するこのライブラリがページの読み込み時に変更を行う可能性が高いため、どこに配置しても、<script>実行前にこれらの要素が表示される可能性はありません。

結果として、スクリプトも待機させる必要があり、次のようにします。

window.onload = function(){
 document.getElementById('rightpanelnav1').style.padding='200px';
};

またはクリックイベントの場合

window.onload = function(){
 document.getElementById('rightpanelnav1').onclick = function(){
  alert("clicked!");
 };
};
于 2013-03-26T19:49:04.757 に答える