I have the following example code, creating a object collection.
How can I remove one of the objects? (e.g. $TestList would look as though the "delete me" item was never there. I've tried .remove, .splice, .delete etc but I'm told it's not a function.
Doing typeof($TestList) brings back object, and typeof($TestList[0]) also seems valid.
Surely I don't have to recreate the collection without one item?
(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(
{
})
});
We're using jQuery 1.3.
Thanks!
Review
First of all, it's very non-obvious what your code is supposed to do, but here are some issues:
jQuery.QuickTest = {
$TestList: {},
build: function()
{
$TestList={};
You define jQuery.QuickTest.$TestList
, but inside build()
you declare a global object $TestList
.
Functions declared under jQuery.fn
are supposed to act on a matched set of elements (referenced by this
) and return it as well; your function does neither.
Answers
An answer to some of your questions:
.remove()
is a jQuery function that removes nodes from the DOM and needs to be called on a jQuery object.
.splice()
only applies to Array
and even though you're accessing $TestList
as if it were one, it's still just an Object
.
.delete()
is not any function I know ;-)
Possible solution
To delete an entry from $TestList
you could use the delete
in this fashion:
delete $TestList[1];
use delete myObject
, not myObject.delete
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With