序列化没有表格?
大家好我正在使用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中的元素