Jak serializovat aktuální div pomocí $(this).parent() s JQuery?

Snažím se serializovat aktuální div pomocí clickevent. Dobré vysvětlení viz kód:

$("#createreview").live('click', function() {
    alert($(this).parent().serialize());
    $.post('/admin/home/review/create/', $(this).parent().serialize(), function(data){
       alert('Review successfully added to database.' +data);
    });
});

Alert neukáže nic, což znamená, že div není serializován. Toto je dotyčný html. Je to uvnitř dialogu, což je také důvod, proč musím použít live() .

<div id="reviewdiv">
            <input type="hidden" value="7" name="homeid">
            <label>Content</label><textarea name="reviewcontent" id="reviews" rows="3" cols="60"></textarea><br>
            <label>Author</label> <input type="text" name="reviewauthor"><button class="ui-state-default ui-corner-all" id="createreview">Save Review</button><button class="ui-state-default ui-corner-all" id="removereview">Remove Review</button><br>
        </div>

Také tento kód funguje bez problémů při odstranění aktuálního div pomocí clickevent a rodičovského selektoru.

$("#removereview").live('click', function() {
  $(this).parent().slideUp();
});

Odpověď

Můžete serializovat <div> .

Serializace používá interně param metoda. Chcete-li tedy serializovat vstupní prvky, které nepatří do formuláře, použijte param metoda. Příklad:http://jsfiddle.net/DdVqJ/

Pamatujte však, že správný (a sémantický) způsob je vložit vstupní prvky do formuláře.