2016-04-06 2 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' текст на английском языке ->' image' Texte français – Guillaume

+0

Посмотрите мой ответ ниже – Pimmol

ответ

2

Пожалуйста, смотрите этот ответ о содержании внутри img теги: Div tag within img tag

Но возможное решение заключается в удалении id из img и создать новый элемент вокруг текста с этим идентификатором. Например:

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

И демо: https://jsfiddle.net/7j2ckw0r/1/

+0

Я пробовал, но изображение не находится рядом с текстом – Guillaume

+0

Сделайте это 'span' или используйте немного 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> 
Смежные вопросы