2010-05-13 17 views
1

Je voudrais pouvoir placer une balise vide n'importe où dans mon document comme marqueur pouvant être adressé par jQuery. Cependant, il est important que le XHTML valide toujours. Pour vous donner un peu de contexte sur ce que je fais: J'ai comparé les versions actuelles et précédentes d'un document particulier et je place des marqueurs dans le code HTML où les différences sont. J'ai alors l'intention d'utiliser jQuery pour mettre en évidence les éléments au niveau du bloc parent lorsque highlightchanges=true se trouve dans la chaîne de requête de l'URL.Y at-il une balise en XHTML que vous pouvez placer n'importe où dans le corps - même à l'intérieur des éléments TABLE?

En ce moment je suis en utilisant les balises <span> mais il me est apparu que ce genre de chose ne validerait pas:

<table> 
    <tr> 
     <td>Old row</td> 
    </tr> 
    <span class="diff"></span><tr> 
     <td>Just added</td> 
    </tr> 
</table> 

est donc là une étiquette que je peux utiliser partout? Meta tag peut-être?

Merci pour votre aide!

Iain

Edit: Sur les conseils de codeka, je chercher un meilleur moteur de différence et je l'ai trouvé un qui est à l'écoute de trouver des différences dans XHTML: http://www.rohland.co.za/index.php/2009/10/31/csharp-html-diff-algorithm/

Répondre

3

Vous pouvez utiliser les commentaires HTML et this plugin (ou this one).

+0

Nice! Je vais certainement y jeter un coup d'oeil et revenir vers vous! –

+0

Ceci est probablement une meilleure idée, bien que ce soit toujours un problème si votre moteur de différence fonctionne caractère par caractère, sans connaissance du HTML (par exemple, que se passerait-il si quelqu'un ajoutait un nouvel attribut à une balise ?) –

2

pouvez-vous pas il suffit de modifier la classe d'éléments qui ont changé?

<p class="diff other-class">Something changed</p> 
<table> 
    <tr> 
     <td>Old row</td> 
    </tr> 
    <tr class="diff"> 
     <td>Just added</td> 
    </tr> 
</table> 
+0

Je suppose que je pourrais, mais le moteur de diff que j'utilise n'est pas conscient de la langue. Il compare uniquement les chaînes par un délimiteur à un seul caractère. Je suppose que je pourrais analyser mon xhtml et ajouter une classe si le texte interne contient le caractère de contrôle ... Je ne sais pas par où commencer avec ça! :) –