2016-04-06 7 views
1

申し訳ありませんが、それはあなたの質問です!javascriptでテキストを変更してsrcを保存してください

<script> 
     var translations= { 'en' : 
           {'title' : 'Title', 'textimg' : 'English text'}, 
          'fr' : 
           {'title' : 'Titre', 'textimg' : 'Texte français'} 
          }; 
     function doTranslate(language) { 
      for(id in translations[language]) { 
       document.getElementById(id).innerHTML = translations[language][id]; 
      } 
     } 
</script> 

そしてこのHTML::

<a href="javascript:doTranslate('fr')"><img src="img/Fr-Flag.png"></a> 
<a href="javascript:doTranslate('en')"><img src="img/UK-Flag.png"></a> 
<h2 id="title">Title</h2> 

私は画像(小さなアイコン)を使用するときに問題が来る:

私はこのコードで自分のページを翻訳するためのスクリプトを使用していますテキストの変更が、srcはdisapearように見えるので、ときにテキストの変更、画像は表示されません。

<img id="textimg" src="img/fav-rond.png">English text</img> 

これを解決するには?

+0

期待される出力は? 'English [x]'のようなものです。 '' English''は任意の翻訳されたテキストで、 '[x]'はフラグイメージですか? – kazenorin

+0

私はこのように変更されたテキストの横に画像を持っています: 'image' English text->' image' Textefrançais – Guillaume

+0

私の答えは以下を参照 – Pimmol

答えて

2

imgタグ内のコンテンツについては、この答えをご覧ください。Div tag within img tag

しかし、可能な解決策は、imgからidを削除し、そのIDを使用してテキストの周りに新しい要素を作成することです。たとえば、次のように

<img src="img/fav-rond.png" /> 
<span id="textimg">English text</span> 

とデモ:https://jsfiddle.net/7j2ckw0r/1/

+0

これを試しましたが、画像はテキストの横にありません – Guillaume

+0

「スパン」にするか、少しCSSを使用してください – Pimmol

+0

うん!できます!どうもありがとう!! – Guillaume

0

これは問題を解決するはずです。

document.getElementById(id).setAttribute("id", translations[language][id]) 

この問題を解決するには、innerHTMLを使用しないでください。

+0

OPが「id」を更新したいとは思わない – Pimmol

+0

@SGS Venkateshあなたのソリューションは、私が別の問題(href)を解決するのに役立ちました! ;) – Guillaume

+1

@Guillaume知っておきたいことです。 :) –

0

<img>タグは、内の任意の情報を許可していない、それは"Empty element"

あなたが内部の任意のテキストを追加する場合、それは無効なHTMLテキストになっています。

何がalt属性を追加して行うことができます。

<img id="textimg" src="img/fav-rond.png" alt="English text"/> 
0

代わりにその代わりに、画像やアクセスした後、直接スパン要素を配置、画像タグにテキストを追加することはできません。

<img src="img/fav-rond.png" /><span id="textimg">English text</span>