<li id="sub:777" class="jstree-leaf">
    <ins class="jstree-icon2">&nbsp;</ins>
    <a class=""><ins class="jstree-icon2">&nbsp;</ins>Story B</a>
</li>

Je dois changer la classe des <ins> balises pour un <li> spécifique:

 var original_sub_id = $j(element).attr('id'); e.g sub:777
 var new_sub_id = original_sub_id.split(":");
 new_sub_id = new_sub_id.join("\\\\:"); e.g sub\\:777

J'ai besoin de passer la variable new_sub_id dans le code ci-dessous, mais cela ne semble pas fonctionner:

$j("#"+new_sub_id + "ins:eq(1)").attr("class","jstree-icon2"); // set class to display new icon

Toute suggestion est la bienvenue.

0
tanya 3 nov. 2011 à 21:23

3 réponses

Meilleure réponse

J'ai le sentiment que c'est à cause de: dans votre carte d'identité.

: dans jquery, les sélecteurs ont tendance à précéder un pseudo-sélecteur comme :checked, :selected, :focus

1
Patricia 3 nov. 2011 à 17:28

Puisque vous avez déjà une référence à li, vous pouvez simplement le passer comme contexte pour votre sélecteur.

$j("ins:eq(1)", element).attr("class","jstree-icon2")

0
Chris 3 nov. 2011 à 17:47
$j("#"+new_sub_id + " ins:eq(1)").attr("class","jstree-icon2"); // set class to display new icon

N'oubliez pas l'espace avant ins:eq(1)

Assurez-vous également que cet élément existe: $j("#"+new_sub_id + " ins:eq(1)")

1
Guillaume Cisco 3 nov. 2011 à 17:27
7999189