序列化没有表格?

大家好我正在使用html对象而不是表单在html页面上“打开(添加类.active)和关闭”对象。 并且在每次点击时我都希望它创建一个带有类.active的项目数组但是我似乎无法获得任何结果?!

这是正确的方向吗?

var data = $('li.tagToggle.active').serializeArray(); // li id format is 'id_0001' alert(data) $.post("/scripts/php/process.php",{ 'data[]': data, funcName : 'tagResults', tagResults : '1' }) 

保持警报和空窗口,但当我在表单上使用它时,它会抓取类.active的所有对象

任何指针欢迎!

这就是我正在使用的

 (function($){ $.fn.serializeAny = function() { var ret = []; $.each( $(this).find(':input'), function() { ret.push( encodeURIComponent(this.name) + "=" + encodeURIComponent( $(this).val() ) ); }); return ret.join("&").replace(/%20/g, "+"); } })(jQuery); 

在你的情况下使用它$(’li.tagToggle.active’)。serializeAny();

您可以序列化元素内的所有输入,如下所示:

 var data = $('YourId :input').serialize() 

好的 – 让它工作,但它的不如串行化()

 function getTags(){ var data = []; $('li.tagToggle.active').each(function(){ var me = $(this); var id = me.attr("id").split('_'); data.push(id[1]) }); $.post("/scripts/php/process.php",{ 'data': data, funcName : 'tagResults', tagResults : '1' }) } 

认为有更好的方法吗?

使用此function,您可以使任何元素集可序列化:

 function makeSerializable(elem) { return $(elem).prop('elements', $('*', elem).andSelf().get()); } 

然后你可以像这样使用它:

 var arr = makeSerializable('li.tagToggle.active').serializeArray(); 

要么

 var $elem = $('li.tagToggle.active'); var data = makeSerializable($elem).serialize(); 

如果有人偶然发现这个问题,这个链接是同一个问题,解决方案是使用jquery序列化

  $('#divId :input').serialize(); 

所以在这种情况下

  $('li.tagToggle.active :input').serialize(); 

链接到问题jQuery只序列化div中的元素