2010-03-09 6 views
2

J'essaie d'ajouter un préfixe d'une image, puis de définir ses attributs. Peu confus quant à la façon de le faire - actuellement, j'ai ce qui suit, mais ça ne fonctionne pas. Le code HTML estjQuery Ajouter une image

<div id="testID" class="test1"> 
     <div id="testID2" class="test2" ></div> 
    </div> 

Et la JS est

var test123 = somecode{} 
jQuery(test123).find('#testID2').prepend('<img />').attr({ 
    src: 'some src.gif', 
    alt: '', 
    height: '60' 
}); 

J'espère obtenir

<div id="testID" class="test1"> 
    <div id="testID2" class="test2" > 
     <img src='some src.gif' alt='' height='60' /> 
    </div> 
</div> 

Des idées?

Répondre

5

devrait être:

jQuery("<img/>").prependTo("#testID2").attr({ 
    src: 'some src.gif', 
    alt: '', 
    height: '60' 
}); 

car à partir de votre code précédent, vous attachez les attributs au conteneur et non la balise img

+0

Pour déboguer ce genre de chose Firebug est vraiment utile que vous pouvez voir dans Firebug ce qui est ajouté où. – matpol

+0

hey merci beaucoup - je me demandais juste si j'ai un "trouver" là-bas comment ça marche? J'ai mis à jour la question – Tom

+0

Eh bien, il ne devrait pas être nécessaire de 'find()' pour un # testID2, mais l'argument de 'prependTo()' pourrait facilement être 'jQuery (test123) .find ('# testID2 ') 'au lieu de juste' "# testID2" ' – gnarf

3

réponse de Engwan est un moyen simple de réaliser ce que vous voulez. Ceci est juste un autre exemple où les attributs sont définis avant la balise <img> insère dans le DOM:

jQuery(test123).find('#testID2').prepend(
    $('<img />').attr({ 
    'src': 'some src.gif', 
    'alt': '', 
    'height': '60' 
    }) 
);