转换数据属性以获取/发布数据

Convert data attrs to get/post data

本文关键字:数据 布数据 数据属性 获取 转换      更新时间:2023-09-26

如何将数据属性转换为有效的post(或get)数据?

$('#nav').find('a').click(function(){
    var params = $(this).data();
    $.get({
        type: "get",
        url: "/view/",
        data: params
    });
})

我得到这个错误:

POST http://127.0.0.1/Site1/%5Bobject%20Object%5D/ 404 (NOT FOUND) 

可以使用jQuery.param(),

$('#nav').find('a').click(function(){
    var params = $(this).data();
    params = $.param(params);
    $.ajax({
        type: "GET"
        url: "/view/",
        data: params
    });
})
编辑:

实际上问题是你使用$.get()方法像$.ajax()。

$.get()不接受ajax设置对象。将它改为$.ajax(),这样就不需要使用params了。

jsFiddle演示

我想这应该行得通:

$('#nav').find('a').click(function(){
    var params = $(this).data();
    $.get("/view/",params,function(){
        //success callback
    });
})

如果没有看到html,回答这个问题会更困难,但尝试这样做。美元。post('YourUrl', {paramName: $("elementID").val(), paramName2: $("# elementID") .attr("data")}, function(data){DoSuccessHere});

jQuery get函数接受一个对象作为其data参数,即

$('#nav').find('a').click(function(){
    var params = {
        param1: 'foo',
        param2: 'bar';
    }
    $.get({
        type: 'get',
        url: '/view/',
        data: params
    });
});

您可以通过这种方式从多个数据源中分配多个值,例如

var params = {
    id: $(this).id(),
    name: $(this).attr('name');
}