大家好,我正在使用html对象而不是表单在html页面上打开对象(添加类.active)和off。并且在每次点击时我都希望它创建一个带有类.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
欢迎任何指示!
答案 0 :(得分:13)
您可以序列化元素内的所有输入,如下所示:
var data = $('YourId :input').serialize()
答案 1 :(得分:10)
这就是我正在使用的
(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(); 强>
答案 2 :(得分:6)
好的 - 让它工作但它不像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'
})
}
认为有更好的方法吗?
答案 3 :(得分:6)
使用此功能,您可以将任何元素集串行化:
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();
答案 4 :(得分:2)
万一有人偶然发现这个问题,这个链接是同一个问题,解决方法是使用jquery序列化
$('#divId :input').serialize();
所以在这种情况下
$('li.tagToggle.active :input').serialize();