Frage

Ich bin mit Streben. Meine Action hat eine Arraylist in ihr einrichten, wie kann ich das Array von der JSP-Zugriff, dass die Actionform, die auf einem Button-Klick durch den Controller in jQuery gesendet wird. Dies ist so, kann ich eine Schleife durch die Elemente des Arrays. Ich denke, es ist etwas so, aber das ist ein Stich im Dunkeln (was nicht funktioniert).

$('myButton').click(function(){
    var myArrayToLoopThrough = $('myForm.myArray');
    for(){
        //looping stuff
    }
}
War es hilfreich?

Lösung

jQuery arbeitet auf der HTML erzeugt von JSP.

haben also einen Blick auf die erzeugte HTML-Code im Browser eines Tools wie Firebug für Firefox.

Dann können Sie jQuery verwenden, um auszuwählen und Iterierte über HTML-Elemente. Hier sind die grundlegende Syntax der nützlichsten Dinge:

Wählen Sie eine ID : $("#id")

Auswahl nach Klasse : $(".class")

Auswahl nach HTML-Tag : $("p") oder $("span")

Iterate über eine Auswahl

$(...something...).each(function(){
   // this is the DOM element
   // $(this) is a jQuery object containing the DOM element
});

offiziellen jQuery-Dokumentation auf Selektoren


Bearbeiten

Auf der Basis Ihrer Kommentare, Sie scheinen einen Weg zu suchen, um mit Server zu kommunizieren Objekte anstelle von dynamisch erzeugten HTML.

Javascript (jQuery ist in Javascript geschrieben) ist eine Web-Browser-Sprache, die nur interact mit dynamisch erzeugten HTML. Ihre Java-Objekte werden nicht an den Browser gesendet.

Wenn Sie Notwendigkeit tun Daten vom Server abgerufen werden, dann müssen Sie eine neue HTTP-Anforderung, um diese Daten abzurufen. Dies kann in jQuery getan werden, indem die AJAX Methoden .

Andere Tipps

Sie können wollen .serializeArray() auszuchecken. Sie können alle Daten aus dem Formular in ein schönes Objekt erhalten, so können Sie tun, was Sie mit den Daten wollen.

jQuery .serializeArray () Dokumentation

var data = $('#form-id').serializeArray();

Jetzt können Sie eine Schleife durch data. Die Tasten sind name und value.

Ist das, was Sie suchen?

$('.myButton').click(function(e) {
    var data = $(this).closest('form').serializeArray();
    for( var i = 0; i < data.length; i++ ) {
        var field = data[i];
        console.log( field.name + '=>' + field.value );
    }
});
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top