2010-01-26 5 views
0

J'ai un problème avec jquery où j'ai défini le code html d'un div en utilisant la méthode html, mais il ne l'a pas défini correctement.Problème lors de la définition de html de div à l'aide de la méthode jquery html()

Voici le dépouillé du code J'utilise:

<?xml version='1.0' encoding='utf-8' ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
    <head>   
    <script language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js" type="text/javascript"></script> 
    <script type='text/javascript'> 
     jQuery(document).ready(function($) { 
     $('#results').html("<div class='tweet'><a href=javascript:sendDirectMessage('1711838', 'abc')>DM</a><hr/></div>"); 
     })  
    </script> 
    </head> 
    <body> 
    <div id="results"/>  
    </body> 
</html> 

mais quand je vois le résultat dans la page générée en utilisant Firebug, l'élément a son contenu défini sur:

<a)="" abc="" href="javascript:sendDirectMessage('1711838',">DM</a> 

Qu'est-ce que est-ce que je fais le mal ??

Répondre

2

Peut-être que vous devriez joindre à des guillemets doubles:

<a href=\"javascript:sendDirectMessage('1711838', 'abc')\"> 
1

Essayez ceci:

$('#results').html('<div class="tweet"><a href="javascript:sendDirectMessage(\'1711838\', \'abc\')">DM</a><hr/></div>'); 
0

Vous avez oublié de citer votre attribut href. Par conséquent, il a cessé d'analyser la valeur de href après le premier espace. Par conséquent, il a cessé d'analyser la valeur href après le premier espace.

Vous devez écrire:

$('#results').html(
"<div class='tweet'><a href=\"javascript:sendDirectMessage('1711838', 'abc')\">DM</a><hr/></div>" 
); 

Le \" crée une " dans une chaîne entre guillemets.

2
  1. Le code HTML que vous tentez de générer n'est pas valide (il s'agit de votre principal problème). Puisque vous utilisez XHTML, les règles pour les attributs de citation sont simples: les valeurs d'attribut doivent être citées. Le vôtre ne l'est pas.
  2. Vous utilisez JavaScript: pseudo URIs
  3. Vous utilisez pas valide XHTML
  4. Vous n'utilisez pas Comme le dit Aito HTML compatible XHTML
+0

5. Vous incluez une déclaration redondante ' bobince

+0

5 est couvert par 4: http://www.w3.org/TR/xhtml-media-types/#C_1, mais 6 est un bon point. – Quentin

0

, vous avez besoin des guillemets doubles:

$('#results').html("<div class='tweet'><a href=\"javascript:sendDirectMessage('1711838', 'abc')\">DM</a><hr/></div>"); 
Questions connexes