2017-08-29 12 views
-1

のdocument.getElementByIdエラーのdocument.getElementByIdエラー

Drupal.behaviors.Menu = { 
attach: function() { 

    var url = window.location.href; 
    var baseUrl = Drupal.settings.baseUrl; 
    var page1 = baseUrl+'/path/page1'; 
    var page2 = baseUrl+'/path/page2'; 
    var page3 = baseUrl+'/path/page3'; 

    if($(".classname").length < 3) {  
    $("#hook").append("<a class='classname' href='' id='page1_id'>page 1</a>"); 
    $("#hook").append("<a class='classname' href='' id='page2_id'>page 2</a>"); 
    $("#hook").append("<a class='classname' href='' id='page3_id'>page 3</a>"); 
    } 
    if(url == baseUrl+'/path') { 

    document.getElementById("page1_id").href = page1; 
    document.getElementById("page2_id").href = page2; 
    document.getElementById("page2_id").href = page3;  
    } 
} 
}; 

がある(VAR)とpage1_idは(ID)です。

上記のif文の近くにエラーがありました。 if(url == base ...) これはエラーが発生する正確な場所です。 私は間違いを犯している場所を知りたいです(エラーは以下のようなものです)

- >私はその特定のページを開いたときに完全にフックされているページリンクをクリックしますそれは完全に開きます。

問題は、私が最初に開いたページが次の2ページに向かうことです。 ページ2を最初にクリックすると、次のページ1またはページ3(まだページ2が表示されます)。ページの更新後

私はPAGE3まず、次のページ1またはページ2をクリックした場合には(まだそれがPAGE3を示して)

。 として、document.getElementByIdは前のURLだけを保持しています。

大変助かります。私のURLを理解するユーザーの場合

+1

ちょっと混乱しますが、どのようなエラーが表示されているかを最小限にして検証可能な例でフィドルを作ることができますか? – jdmdevdotnet

+0

JQueryとJavascriptを混在させることは一般的には悪い考えです。 '$("#id ")' – OneMoreQuestion

+0

を実行することで、QueryでIDで要素を選択することはできません。要素を処理する前にラップすることを忘れないでくださいそれらを要素として扱うためにjqueryとunwrapを行います。 JQueryに突然Javascriptの残りの部分を違わせるような魔法はありません。 – spectras

答えて

-1

http://site.localhost/path/page1 のような(同様PAGE2とPAGE3)である

これはステージングと生産

Below code solved my issue

に移動したときに応じて変更する必要があります!警告コメントを見てください。

Drupal.behaviors.Menu = { 
attach: function() { 

    //var url = window.location.href; 
    var baseUrl = Drupal.settings.baseUrl; 
    var page1 = baseUrl+'/path/page1'; 
    var page2 = baseUrl+'/path/page2'; 
    var page3 = baseUrl+'/path/page3'; 
    //modified 
    var parts = windows.loaction.pathname.split('/'); 
    var query = parts[parts.length-1].split('.html'); 
    //added these two variables for splitting the url. 

    if($(".classname").length < 3) {  
    $("#hook").append("<a class='classname' href='' id='page1_id'>page 1</a>"); 
    $("#hook").append("<a class='classname' href='' id='page2_id'>page 2</a>"); 
    $("#hook").append("<a class='classname' href='' id='page3_id'>page 3</a>"); 
    } 
    //if(url == baseUrl+'/path') { 
    if(query[0] == 'path' || query[0] == 'page1' || query[0] == 'page2' || query[0] == 'page3'){ 

    document.getElementById("page1_id").href = page1; 
    document.getElementById("page2_id").href = page2; 
    document.getElementById("page2_id").href = page3;  
    } 
} 
}; 
関連する問題