2010-06-29 20 views
1

J'utilise prepend() et le résultat semble être buggé.jQuery prepend() Bug?

$('#element').prepend('<div><a href="http://google.com"><a href="http://test.com">Test.com</a> - A site</a></div>'); 

Et le résultat html (également vu avec Firebug) est bogué:

<div> 
    <a href="http://google.com"></a> 
    <a href="http://test.com">Test.com</a> - A site 
</div> 

(Les liens ne sont que des exemples de liens)

+1

vous avez un 'a' dans un' a' –

+0

Vous ne pouvez pas faire un lien qui va à 2 endroits. – tcooc

Répondre

4

Vous ne pouvez pas avoir un point d'ancrage à l'intérieur une ancre ... donc ce n'est pas "bogué", il se comporte de manière inattendue avec un code HTML invalide, mais quand HTML est invalide, c'est ... bien, attendu. Pensez-y de cette façon, si vous avez cliqué sur l'ancre intérieure, où devrait aller votre navigateur? Vous avez cliqué sur http://test.comethttp://google.com.

1

Comme je le sais, les liens imbriqués (les éléments a) ne sont pas autorisés en html. Le navigateur se ferme donc avant le second. Il n'a aucun lien avec jQUery.

0

Vous devez écrire dans un format DOM approprié. D'accord avec Nick Craver.

Dès que la balise "a" rencontre un autre élément "a", DOM ferme automatiquement la balise "a" précédente. comme avec xml do.