Подтвердить что ты не робот

Сериализовать без формы?

Привет всем, я превращаю объекты "(добавление класса .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

любые указатели приветствуются!

4b9b3361

Ответ 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