2009-04-17 5 views
0

je dois sortir le contenu d'une variable Javascript qui a le code html dans ce:sortie en utilisant innerHTML

var jsVar = '<div> 
<p> Sample text </p> 
<img src="some image.jpg" alt="" /> 
<div>'; 

Je veux ajouter à un objet sur la page en utilisant innerHTML. Comment fait-on ça ?

Répondre

2
var element= document.getElementById("elementID"); 
element.innerHTML = someHTMLstring; 
2
document.getElementById('id').innerHTML = jsVar; 
4
var element = document.getElementById("myElementId"); 
element.innerHTML = jsVar; 

Ceci suppose que vous obtenez votre élément via getElementById(); Il y a plusieurs façons d'obtenir des éléments en JavaScript, comme getElementsByTagName() (qui retourne un tableau d'éléments) ou en écoutant des événements sur des éléments qui se passent en argument.

De même, la façon dont vous chargez la chaîne dans jsVar ne fonctionnera pas actuellement. Vous avez besoin soit de le mettre sur une seule ligne, ou concaténer plusieurs chaînes, comme ci-dessous:

// Method 1 
var jsVar = '<div><p> Sample text </p><img src="some image.jpg" alt="" /><div>'; 

// Method 2 
var jsVar = '<div>' + 
    '<p> Sample text </p>' + 
    '<img src="some image.jpg" alt="" />' + 
    '<div>'; 
+0

Je reçois une exception de chaîne non terminée. Comment supprimer les sauts de ligne, les espaces, etc. – Iris

+0

Si vous chargez jsVar comme vous l'avez écrit ci-dessus, l'erreur que vous obtenez est due au fait que la chaîne est définie sur plusieurs lignes. Vous devez avoir cette chaîne entière définie sur une ligne, ou concaténer plusieurs chaînes sur chaque ligne. Je vais éditer ma réponse pour vous montrer comment. –

0

Notez également que vous devrez utiliser \n au lieu de linebreaks en JavaScript:

var jsVar = '<div>\n<p> Sample text </p>\n<img src="some image.jpg" alt="" />\n<div>'; 

Si vous ne le faites pas, vous obtiendrez une erreur "unterminated string literal".

+0

oui ..Je rencontre des problèmes pour cela .. remplacer tous les sauts de ligne avec \ n – Iris

+0

Si vous faites innerHTML, vous n'avez pas besoin d'avoir les \ n, car ils sont superflus alors. –

+0

Vous avez raison, mais c'est toujours une bonne pratique, à mon humble avis. – moff

0

La chaîne que vous affectez, ne peut pas couvrir plusieurs lignes:

cela ne fonctionne pas

ttt = "ab 
c"; 

cela ne

ttt = "ab" + 
     "c"; 

mieux serait tout spécial échapper caractères, et se débarrasser des sauts de ligne dans votre chaîne (je n'aime pas les chaînes faites avec ', bien que ce soit une chose personnelle :).

var jsVar = "<div><p> Sample text </p> <img src=\"some image.jpg\" alt=\"\" /><div>"; 
+0

Juste une tête, vous pouvez modifier vos propres messages pour étendre votre réponse. (Je l'ai fait juste pour couvrir cette situation, en fait.) –

+0

pourriez-vous élaborer sur la façon dont je pourrais échapper à tous les caractères spéciaux, et se débarrasser des sauts de ligne. Merci – Iris

Questions connexes