jquery如何组合data()对象

时间:2010-11-28 14:30:40

标签: javascript jquery

我有两个数据对象存储在dom中的不同节点上

$('node1').data('id','1');
$('node2').data('id','1');

如何将它们组合起来以将它们附加到ajax对象中的数据属性

$.ajax({
  url: 'http://localhost:8080/test.html',
  timeout: 3000,
  cache: false,
  data: // combined node1 and node2 here!,
  success: function(data){
  }
});

提前致谢

1 个答案:

答案 0 :(得分:3)

你有几个选择。我就是这样做的:

data: {node1: $('node1').data('id'), node2: $('node2').data('id')},

...因为jQuery会接受一个对象并为您生成必要的URI编码表示(请参阅the ajax docs中的data参数)。

但您也可以使用encodeURIComponent和字符串连接来执行此操作:

data: "node1=" + encodeURIComponent($('node1').data('id')) + "&" +
      "node2=" + encodeURIComponent($('node2').data('id')),

你可以看到为什么我更喜欢第一种语法。 : - )

无论哪种方式,您的脚本都会在HTTP数据中看到node1node2个参数(在您的情况下是查询字符串,因为您的ajax调用使用的是默认{{1}方法)。

如果您想要一个具有组合值的参数,只需选择一个分隔符(或不使用一个分隔符)并合并这两个值。以下是使用GET作为分隔符的示例:

_