2010-05-14 9 views
1

Salut, je veux appeler la fonction changeDivHTML qui passent l'imagescript javascript innerHTML

<a href="javascript:void(0)" onclick="changeDivHTML(<img src='.DIR_WS_IMAGES .$addimages_images[$item]['popimage'].'>)"> 

et la fonction ajouter ces images à la div id de particulier.

fonction

est ce

<script language="javascript" type="text/javascript"> 
        function changeDivHTML(item) 
        { 
        alert(item); 
         previousInnerHTML = 'item'; 
         alert(previousInnerHTML); 
         document.getElementById('image').innerHTML = previousInnerHTML; 
        } 
</script> 

mais quand je clique sur les images navigateur showas l'erreur javascript.

Error: invalid XML attribute value 
Source File: http://xxx.xxx.xxx.xxx:xxx/product_info.php?products_id=31 
Line: 1, Column: 23 
Source Code: 
changeDivHTML(<img src=images/products/top/product_big1.jpg>) 

Veuillez-vous aider à supprimer cette erreur.

Répondre

0

passe une chaîne (à savoir quelque chose entourée de guillemets), plutôt que certains invalides E4X

2

changeDivHTML exige que vous passez une chaîne, mais vous avez oublié les délimiteurs qui est ce qui cause les erreurs.

<a href="javascript:void(0)" onclick="changeDivHTML('<img src=\''.DIR_WS_IMAGES .$addimages_images[$item]['popimage'].'\'>')"> 
1

Essayez est en passant le paramètre sous forme de chaîne, comme ci-dessous

<a href="javascript:void(0)" onclick="changeDivHTML('<img src='.DIR_WS_IMAGES .$addimages_images[$item]['popimage'].'>')"> 

Ne pas oublier de traiter des caractères d'échappement.

2

D'abord vous devez passer comme une chaîne, pas comme une étiquette! Et, vous devez le fermer à la fin.

<a href="javascript:void(0)" onclick="changeDivHTML(\"<img src='.DIR_WS_IMAGES .$addimages_images[$item]['popimage'].'/>\")">

Deuxièmement, vous devez changer de script comme celui-ci, de sorte que vous obtenez la balise d'image où vous voulez:

<script language="javascript" type="text/javascript"> 
        function changeDivHTML(item) 
        {       
         previousInnerHTML = item; 
         document.getElementById('image').innerHTML = previousInnerHTML; 
        } 
</script> 

Espoir j'ai aidé. =)

+0

En fait, votre premier exemple ne fonctionnera pas car les attributs HTML n'ont pas de caractère d'échappement. Par exemple, vous ne pouvez pas avoir 'onclick =" str = \ "Je suis une chaîne \" "', car les parseurs HTML finiront l'attribut au premier '\" ', quel que soit le caractère d'échappement. –

0

Je suppose que vous essayez de changer le code HTML interne d'un DIV en un autre contenu lorsque vous cliquez sur un lien. Il est plus facile de se référer à d'autres HTML déjà dans le document (éventuellement caché par style="display:none" s'il doit être caché initialement). Voici un exemple:

<div id="div1">Here's div1 <img src="1.png"/></div> 
<div id="div2">Here's div2.</div> 
<a href="#" onclick="changeDivHtml('div1', 'div2')">Click to Change</a> 
<script language="javascript"> 
    function changeDivHtml(source, target) { 
    var elSource = document.getElementById(source) 
     , elTarget = document.getElementById(target); 
    elTarget.innerHTML = elSource.innerHTML; 
    } 
</script>