转换数据attrs以获取/发布数据

时间:2013-05-21 12:49:07

标签: javascript jquery

如何将数据属性转换为有效的发布(或获取)数据?

$('#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) 

4 个答案:

答案 0 :(得分:2)

您可以使用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 DEMO

答案 1 :(得分:1)

我认为这应该有效:

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

答案 2 :(得分:0)

如果没有看到html,那么回答这个问题就更难了,但尝试这样的事情。 $ .post('yourUrl',{paramName:$(“elementID”)。val(),paramName2:$(“#elementId”)。attr(“data”)},function(data){DoSuccessHere}); < / p>

答案 3 :(得分:-1)

jQuery get函数为其数据参数获取一个对象,即

$('#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');
}