Сериализовать без формы?
Привет всем, я превращаю объекты "(добавление класса .active) и выключен" на странице html с объектами html, а не с формами. И при каждом нажатии я хочу, чтобы он создал массив элементов с классом .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
любые указатели приветствуются!
Ответы
Ответ 1
ok - получилось, что это сработает, но его нечетки такие же опрятные, как 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'
})
}
подумайте, есть ли лучший способ?
Ответ 2
Это то, что я использую
(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();.
Ответ 3
Вы можете сериализовать все входы внутри такого элемента:
var data = $('YourId :input').serialize()
Ответ 4
С помощью этой функции вы можете сделать любой набор элементов сериализуемым:
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();
Ответ 5
если кто-то наткнется на этот вопрос, эта ссылка - это тот же вопрос, и решение использует jquery serialize
$('#divId :input').serialize();
поэтому в этом случае
$('li.tagToggle.active :input').serialize();
ссылка на вопрос jQuery для сериализации только элементов в div