jQuery supprimer l'objet de l'objet de collection
J'ai l'exemple de code suivant, la création d'un objet de collection.
Comment puis-je éliminer l'un des objets? (par exemple, $TestList regardent comme si la "suppression" de l'élément n'a jamais été là.
Je l'ai essayé .les supprimer, de les .d'une jonction .supprimer, etc, mais je me suis dit que ce n'est pas une fonction.
Faire typeof($TestList) ramène l'objet, et typeof($TestList[0]) semble également valable.
Sûrement, je n'ai pas à recréer la collection sans un seul élément?
(function($) {
jQuery.QuickTest = {
$TestList: {},
build: function()
{
$TestList={};
$TestList[0] =
{
title: "part 1"
};
$TestList[1] =
{
title: "delete me please"
};
$TestList[2] =
{
title: "part 2"
};
}
}
jQuery.fn.QuickTest = jQuery.QuickTest.build;
})(jQuery);
$(document).ready(function() {
$().QuickTest(
{
})
});
Nous sommes à l'aide de jQuery 1.3.
Merci!
- N'a pas
$()
juste de commencer à travailler depuis la 1.4? En outre, pourriez-vous partager avec nous ce que ce morceau de code est censé faire? - Btw,
$TestList
est implicite global, qui est une mauvaise idée. - Avant de 1.4,
$()
serait de retour d'un objet jQuery contenant ledocument
élément. - Ah ... eh bien, que fait ce code encore plus difficile à comprendre 😉
Vous devez vous connecter pour publier un commentaire.
Examen
Tout d'abord, il est très non-évident que votre code est censé faire, mais voici quelques questions:
Vous définissez
jQuery.QuickTest.$TestList
, mais à l'intérieur debuild()
vous déclarez une mondiale objet$TestList
.Fonctions déclarées en vertu de l'
jQuery.fn
sont censés agir sur un ensemble d'éléments (référencé parthis
) et de le renvoyer ainsi; votre fonction ne fait rien.Réponses
Une réponse à certaines de vos questions:
.remove()
est une fonction jQuery qui supprime les nœuds du DOM et doit être appelée sur un objet jQuery..splice()
s'applique uniquement auxArray
et même si vous êtes accédant à$TestList
comme si elle en avait un, il est encore juste unObject
..delete()
n'est pas n'importe quelle fonction je sais 😉Solution Possible
Pour supprimer une entrée de
$TestList
vous pouvez utiliser ledelete
dans ce mode:utilisation
delete myObject
, pasmyObject.delete
null
.