2013-04-26 7 views
1

J'ai une UL simple avec tous les LI ayant class = "événement".appendTo ne fonctionne pas comme prévu

Le jQuery suivant ne fonctionne pas comme prévu. Je voudrais prendre le seul h3 dans chaque LI et l'ajouter à la seule h4 dans ce LI.

Actuellement, il prend tous les H3 et les cloner dans chaque H4.

Est-ce que ma syntaxe est fausse ou est-ce que j'y pense de la mauvaise façon?

Répondre

3

Pour ce faire, car le appendTo est un nouveau sélecteur qui peut contenir n'importe quoi dans la page. Vous avez donc sélectionné tous les H4 dans la page et les avez ajoutés à la LI h3.

$('#calendar-feed li.event').each(function() { 
    $(this).find('h3').appendTo($(this).find('h4')); 
}); 
+0

Cela a fonctionné. J'ai une connaissance pratique décente de jQuery, mais je n'ai pas l'esprit d'un programmeur ... Pour une raison quelconque, je pensais parce que c'était dans une fonction .each, il ne ferait que regarder dans ce LI particulier. Merci pour l'aide. – Sean

2

Je pense que vous devez obtenir la h4 correcte à l'intérieur de la boucle, quelque chose comme ceci:

$('#calendar-feed li.event').each(function() { 
    var h4 = $(this).find('h4'); 
    $(this).find('h3').appendTo(h4); 
}); 

Here is a working example

+0

Je n'ai pas essayé cette solution particulière, mais j'imagine que cela fonctionnerait aussi, voyant maintenant ce que je faisais de mal. – Sean

0

Il n'a pas de sens d'un <h3> annexant EN<h4>.

je suppose que ce que vous voulez est de placer <h3>APRÈS<h4>, échangeant leurs positions (bien qu'il fait encore moins de sens que si vous utilisez ces balises, mais de toute façon)

$('#calendar-feed li.event h3').each(function (i, h3) { 
    var $h3 = $(h3); 
    $h3.after($h3.closest('li').find('h4')); 
}); 

Alternativement si vous voulez le <h3> garanti être le dernier élément dans chaque <li>, puis le faire

$('#calendar-feed li.event h3').each(function (i, h3) { 
    var $h3 = $(h3); 
    $h3.appendTo($h3.closest('li')); 
}); 

DEMO: http://jsfiddle.net/terryyounghk/sN7Mf/

+0

Je veux le h3 à l'intérieur du h4. principalement à cause de comment je dois le styler, et je ne peux pas réécrire comment CMS écrit le balisage. – Sean

Questions connexes