J'ai une fonction qui ajoute un fichier <div>
à un élément lors d'un clic. La fonction récupère le texte de l'élément cliqué et l'assigne à une variable appelée name
. Cette variable est ensuite utilisée comme <div>
id
de l'élément ajouté.
J'ai besoin de voir si un <div>
id
con name
existe déjà avant que j'ajoute l'élément, mais je ne sais pas comment le trouver.
Voici mon code :
$("li.friend").live('click', function() {
name = $(this).text();
// if-statement checking for existence of <div> should go here
// If <div> does not exist, then append element
$("div#chatbar").append("<div class='labels'><div id='" + name + "' style='display:none;'></div>" + name + "</div>");
// Else
alert('this record already exists');
});
Cela semble assez simple, mais j'obtiens l'erreur " Fin de fichier inattendue lors de la recherche du nom de la classe". . Je n'ai aucune idée de ce que cela signifie.
if (document.getElementById(name)) {
$("div#" + name).css({bottom: '30px'});
} else {
$("div#page-content div#chatbar").append("<div class='labels'>" + name + "</div><div id='" + name + "'></div>");
}
De plus, je veux pouvoir supprimer cet élément si je le ferme, ce qui devrait alors supprimer l'élément div id [name]
du document mais .remove()
ne le fait pas.
Voici le code pour cela :
$(".mini-close").live('click', function(){
$(this).parent().remove();
});
J'ai ajouté .mini-close
à la fonction append comme enfant de .labels
il y avait donc un moyen de fermer la fenêtre de l'annexe. <div>
si nécessaire. Après avoir cliqué sur .mini-close
et en essayant de cliquer à nouveau sur le même nom à partir de li.friends
il trouve toujours le div id [name]
et renvoie la première partie de mon if
déclaration.
0 votes
La fin inattendue d'un fichier se résume généralement à une erreur de syntaxe quelque part.
$("div#" + name).css({bottom: '30px'});
est erronée, elle devrait être$("div#" + name).css('bottom', '30px');
0 votes
Remove() détache l'élément de l'arbre DOM mais ne le détruit pas, donc une recherche par ID le trouvera toujours, si vous l'aviez assigné à une variable, il serait toujours là, etc. La solution ici est la suivante : si vous le trouvez, ajoutez-le à la div correcte (s'il est déjà là, rien ne se passera, s'il a été détaché/supprimé, il réapparaîtra), s'il n'est pas trouvé, alors créez-le.
0 votes
Duplicata de stackoverflow.com/q/31044/12101554 (mais je ne signale pas les doublons car il s'agit d'une question ancienne et populaire) (je voulais juste les relier entre elles)