D'avoir une erreur: Échec de l'exécution de 'appendChild' sur 'Noeud': paramètre 1 est de type "Nœud"
J'ai vu des gens avec ce problème avant ici, mais aucune réponse ne m'a aidé à comprendre mon problème.
J'ai une fonction de tri qui n'est pas le tri des éléments attachés à la DOM, mais de donner à une erreur dans la console: Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'.
Je ne comprends pas pourquoi au-delà du fait qu'il ne peut pas ajouter les objets du DOM parce qu'ils sont de différents types.
function sorting(){
$('#sort_by a').click(function(e){
var sortAttr = $(this).attr('href').slice(1);
e.preventDefault()
var bands = $('#results').children();
bands.sort(function (a, b) {
if ($(a).attr(sortAttr) > $(b).attr(sortAttr)){
return 1;
}
if ($(b).attr(sortAttr) > $(a).attr(sortAttr)){
return -1;
}
return 0;
});
var appendAnim = function(items, index){
$(items[index]).hide();
$(items[index]).fadeIn(500);
document.getElementById('results').appendChild(items[index])
if(index < items.length ){
appendAnim(items,index + 1);
}
}
appendAnim(bands,0)
return false;
});
};
u peut créer violon démo pour ce pour simuler?
OriginalL'auteur PanicBus | 2015-03-11
Vous devez vous connecter pour publier un commentaire.
Vous mélangez jQuery objet DOM et javascript natif objet DOM.
L'objet DOM renvoie par sélecteur jQuery (et $('#résultats").les enfants (dans votre cas) est un objet créé par jQuery, qui est différent de javascript les objets DOM. Par conséquent, vous ne pouvez pas l'utiliser en javascript natif de la méthode .appendChild(Node)
Puisque vous êtes à l'aide de jQuery, je vous suggère de l'utiliser .append() la méthode, afin de changer cette
:
OriginalL'auteur WorldFS