2016-09-25 6 views
0

私はUdacityによるJavascriptコースを受講しています。プロジェクトは履歴書を作成することです。コースも別の質問も本当に私の質問に答えません。Javascriptで文字列をURLに置き換えることはできません

resumeBuilder.jsファイル、およびhelper.jsファイルがあります。 helper.jsファイルには、置換が必要な文字列を含む変数が含まれています(%data%など)。 変数myTwittermyWebsiteに変更し、HTMLタグを追加して自分のウェブサイトを新しいタブで開きました。

var myWebsite = HTMLwebsite.replace("%data%", "http://learn.website.com"); 
myWebsite = HTMLwebsite.replace("%website%", "www.website.com"); 

... helper.jsに、この変数の文字列を置き換えることになっている:オン

var HTMLwebsite = '<li class="flex-item"><span class="orange-text">website</span><span class="white-text"><a href="%data%" target="_blank">%website%</a></span></li>'; 

resumeBuilder.jsファイルで

、私はこれらの変数を持っていますindex.htmlページ、ウェブサイトとリンクが表示されます。しかし、www.website.comのリンクをクリックすると、ブラウザ(Firefox)に新しいタブが開きますが、「%data%」で終わるローカルファイルパスに移動します:

file:///C:/Users/user/Documents/Education/Javascript/udacity/git_repos/frontend-nanodegree-resume/%data% 

var HTMLwebsite = '<li class="flex-item"><span class="orange-text">website</span><span class="white-text"><a href="http://learn.website.com" target="_blank">%website%</a></span></li>'; 

私はどのようにしないようにハードコードhelper.jsを知りたいと置き換える方法を使用します。私は次のようにハードコードされたhelper.js'変数、それは私が望んでいたURLに私を監督

resumeBuilder.jsでURLを有効にします。

私も\/の横に:文字を追加しようとした、とhelper.jsとresumeBuilder.jsに\"%data%\"%data%を変更するが、それはそれを修正しませんでした。

ありがとうございました!

答えて

3

問題は、2番目のreplaceが再び前の結果から、しかし、元の変数から起動しないということです。だから、最初のreplaceの効果が

変更に

失われた次のコードでは

var myWebsite = HTMLwebsite.replace("%data%", "http://learn.website.com"); 
myWebsite = myWebsite.replace("%website%", "www.website.com"); 
+0

ありがとうございました!それはたくさんの助けた@trincot –

+0

あなたは大歓迎です。 ;-) – trincot

1

、あなたはこの例では

var myWebsite = HTMLwebsite.replace("%data%", "http://learn.website.com"); 
myWebsite = HTMLwebsite.replace("%website%", "www.website.com"); 

だからあなたの最初の変更を上書きされ、2番目の名前がMyWebSiteであります最初のHTMLWebsite変数に戻り、%website%をあなたのコードに置き換えます。これは、最初のmyWebsite宣言で適用した変更を破棄しています。

この問題を解決するために、2つのオプションがあります

まず、あなたがこのような時での変化の変数のいずれかを、:

var myWebsite = HTMLwebsite.replace("%data%", "http://learn.website.com"); 
myWebsite = myWebsite.replace("%website%", "www.website.com"); 

それとも、このような2つの置き換える機能をチェーンすることができます:

var myWebsite = HTMLwebsite.replace("%data%","http://learn.website.com") 
          .replace("%website%", "www.website.com"); 
+0

ありがとう –

関連する問題