2016-08-29 5 views
1

誰かが助けてくれることを願っています。動的にhrefを変更し、URLフラグメントへのリンク

<a class="resourceLink" href="" title="Link to Resources section" target="_blank">Resources</a> 
:私はこのようないくつかのリンクを使用しているHTMLで

$(document).ready(function(){ 
    if (document.location.pathname.indexOf('cab2') > -1){ 
     document.getElementsByClassName('resourceLink').setAttribute('href','http://www.myserver.net/cab2/#linkResources'); 
     } else { 
      document.getElementByClassName('resourceLink').setAttribute('href','http://www.myserver.net/cab/#linkResources'); 
     }; 
}); 

: 私は動的にページのhrefを変更してからとフラグメントを含むURLにユーザーを指すようにしようとしています

私は、スクリプトは、訪問者がサイトに到達するために使用されていたURLかどうか確認するだろうだったために期待していたいずれかの

:その後、

  • http://www.myserver.net/cab2/とのいずれかに該当するのhrefを設定します。 net/cabまたはcab2)、#フラグメントページではありません。

    私は間違っていますか? あなたの興味に感謝します。

  • +0

    [getElementByClass()。setAttributeメソッドが動作しない]の可能な重複(http://stackoverflow.com/questions/2565909/getelementbyclass -setattribute-doesnt-work) – dave

    +0

    jQueryを使用しています。使用してください。 – epascarello

    答えて

    3

    .getElementsByClassName()は、単一の要素ではなくHTMLCollectionを返します。あなたが設定し、.attr()をすべて.resourceLinkの要素を反復処理するために.each()を使用することができますhref属性値

    $(document).ready(function(){ 
        var link = document.location.pathname.indexOf('cab2') > -1 ? "cab2" : "cab"; 
        $('.resourceLink') 
        .each(function() { 
         $(this) 
         .attr('href','http://www.myserver.net/'+ link +'#linkResources') 
        }); 
    }); 
    
    +1

    ありがとう@ guest271314、それでも動作するようになることはできませんが、あなたのコメントは私を始めている。 var link文にはマイナーなタイプミスがあります。これは余分な閉じ括弧です。 –

    +0

    @RogerW _ "それでも動作しない" _現在の問題は何ですか?最後のスラッシュ '/'は必要ですか? – guest271314

    +0

    まだ基本ページ - www.myserver.net/cab/(またはcab2)が読み込まれていますが、追加された部分は読み込まれません。つまり、www.myserver.net/cab/#linkResourcesです。ご協力いただきありがとうございます! –

    関連する問題