11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

Je suis actuellement en train faire un bout de code avec jQuery, mais je pense qu'il y a (peut être) moyen de l'optimiser. Le voici:


			if($(this).parent().is('li')) {
				li = $(this).parent();
				ul = $(li).parent();
				dd = $(ul).parent();
				dl = $(dd).parent();

				$(dl).children('dt').attr('id', 'test');
			}


Pour vous expliquer, je remonte les balises de mon code Html jusqu'a une balise 'dl', puis je vais ajouter un attribue 'id' dans l'enfant 'dt'.

Est ce que vous voyez un moyen d'optimiser de bout de code ? J'avais pensé mettre les parent bout à bout, car je crois que ça fonction. Mais y a t'il une autre solution ?

Merci d'avance
Bien cordialement.
Modifié par nickleus (10 Oct 2009 - 10:26)
Bonsoir,

Mettre les parent bout à bout fonctionne mais y a encore plus simple, utilisais parents;
var li = $(this).parent("li");
if(li.get().length)
{
	li.parents("dl").children("dt").attr('id', 'test');
	//ou li.parents("dd").siblings().attr('id', 'test');
}

/** ou **/

$(this).parent("li").parents("dl").children("dt").attr('id', 'test');

/** ou **/

$(this).parents("dl").children("dt").attr('id', 'test');
//mais celui-ci fonctionne même quand il n'y a pas "li" comme parent

Modifié par jo_link_noir (11 Oct 2009 - 01:06)
Merci jo_link_noir

Je ne savais pas que l'on pouvait mettre un s à parent. Je vais essayer ça.

Cordialement