Hallo,
ich würde gerne über ein jQuery-Objekt (<select>) die Anzahl der Options herausfinden, $("select#myId").options.length klappt schonmal nicht.
Hintergrund:
Ich habe eine verschachtelte Auswahl von zwei Feldern, die linke bestimmt, was in der rechten zu sehen ist. Wenn die linke verändert wird, hole ich per AJAX ein HTML-Template, das mir nur die <option>s dafür ausgegeben hat, Antwort von AJAX also z.B. soetwas:
(hier Sonderfall: nur ein <option> als Rückgabewert)
Der Code dazu sieht in etwa so aus:
Meine Firebugausgabe:
Ziel ist es, wenn nur ein <option>-Element zurückgekommen ist, ich das onchange() dieser zweiten <select>-Box ansteuern möchte.
Ich habe auch schon folgendes probiert:
also die <option>s in ein jQuery-Objekt zu laden und dann die Länge auszulesen.
Jemand ne Idee dazu?
Edit: Das doofe ist, ich kenn den Namen der zweiten <select>-Box garnicht, sondern hab nur dessen jQuery-Objekt, insofern weiß ich auch nicht, wie ich $(??? + " option") bauen könnte, denke funktionieren sollte es ja. Kann ich irgendwie das tatsächliche DOM-Objekt von jQuery() erhalten?
ich würde gerne über ein jQuery-Objekt (<select>) die Anzahl der Options herausfinden, $("select#myId").options.length klappt schonmal nicht.
Hintergrund:
Ich habe eine verschachtelte Auswahl von zwei Feldern, die linke bestimmt, was in der rechten zu sehen ist. Wenn die linke verändert wird, hole ich per AJAX ein HTML-Template, das mir nur die <option>s dafür ausgegeben hat, Antwort von AJAX also z.B. soetwas:
Code:
<option label="allgemein" value="14">allgemein</option>
Der Code dazu sieht in etwa so aus:
Code:
$.post(url, data, function(response) { try { // load response into our <select> box details.html(response); window.console.log(details, response, details.html()); // .. if (details.options.length == 1 && typeof details.onchange == "function") { details.onchange(); } } catch (e) { // error, load nothing, keep form elements disabled window.console.log(e); details.html(""); } });
Code:
jQuery(select#OBJ_LOCATION_DETAIL-2.formElements) <option label="kein Eintrag" value="1">kein Eintrag</option> <option label="kein Eintrag" value="1">kein Eintrag</option>
Ich habe auch schon folgendes probiert:
Code:
var options = $(details + " option");
Jemand ne Idee dazu?
Edit: Das doofe ist, ich kenn den Namen der zweiten <select>-Box garnicht, sondern hab nur dessen jQuery-Objekt, insofern weiß ich auch nicht, wie ich $(??? + " option") bauen könnte, denke funktionieren sollte es ja. Kann ich irgendwie das tatsächliche DOM-Objekt von jQuery() erhalten?
Kommentar