Ho qualche javascript che sta creando un Li basato su un oggetto restituito dal backend dopo una ricerca AJAX. L'utente può continuare a cercare i dispositivi e quando selezionato vengono aggiunti alla pagina corrente (come li). Ogni volta che viene creato un nuovo Li, voglio inviare gli id degli oggetti che sono già stati scelti.Creazione di un array con jQuery di ID oggetto da elaborare sul backend Django
Quando i li sono creati, i loro id sono chiamati "device - ###" dove ### è l'ID del dispositivo nel database, quindi ho bisogno di rimuovere quella parte.
Ecco il javascript che mi sta dando problemi:
var children = $('#temp_inventory').children();
var count = children.length;
var devices = [];
var i = 0;
while (i<=count){
devices[i] = children[i].id.substr(4);
i++;
};
ottengo il seguente errore:
Uncaught TypeError: Object #<HTMLLIElement> has no method 'attr'
Ho anche provato il modo in cui non jQuery:
devices[i] = children[i].id.substr(4);
E Finisco con questo errore:
Uncaught TypeError: Cannot read property 'id' of undefined
Quando lancio in alert(children[i].id.substr(4));
, ricevo un avviso con il numero che mi aspetto.
La ragione per la vostra versione di jQuery non funzionava perché i 'figli [i]' restituisce l'elemento effettivo * *, non l'elemento avvolto in un oggetto jQuery. La soluzione alternativa sarebbe '$ (children [i]). Attr'. #più si conosce – sdleihssirhc