我有两个数据对象存储在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){
}
});
提前致谢
答案 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数据中看到node1
和node2
个参数(在您的情况下是查询字符串,因为您的ajax
调用使用的是默认{{1}方法)。
如果您想要一个具有组合值的参数,只需选择一个分隔符(或不使用一个分隔符)并合并这两个值。以下是使用GET
作为分隔符的示例:
_