如何使用$(this).parent()和JQuery序列化当前div?

Sam*_*nga 3 javascript jquery javascript-events

我试图通过使用clickevent序列化当前div.有关说明,请参阅代码:

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

警报将不显示任何内容,这意味着div未被序列化.这是有问题的HTML.它在一个对话框里面,这也是我必须使用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>
Run Code Online (Sandbox Code Playgroud)

此代码通过使用clickevent和父选择器删除当前div也没有问题.

$("#removereview").live('click', function() {
  $(this).parent().slideUp();
});
Run Code Online (Sandbox Code Playgroud)

JCM*_*JCM 5

你可以序列化一个<div>.

所述序列化使用在内部的param方法.因此,要序列化不属于表单的输入元素,请使用该param方法.示例:http://jsfiddle.net/DdVqJ/

但请记住,正确的(和语义)方法是将输入元素放在表单中.