html:
<button data="'1','2','3'"><button>
js:
$("button").click(function(){
var abc = $(this).attr("data");
ajax(abc);
});
function ajax(biao,class,id){
$.ajax({
type: "post",
url: url,
data:{'biao':biao, 'class':class, 'id':id}
dataType: "html",
success: function ()
{
alert("成功");
}
});
}
ajax 出现了问题,在 chrome 中观察请求头正常情况下应该是:
biao :'1'
class:'2'
id:'3'
但是现在出现如下这个现象
biao:'1','2','3'
也就是说, data 的数据全部给了 biao 了,这是什么原因呢?
1
Mikewu 2017 年 4 月 10 日 你本来就只传给 ajax 有一个参数 biao: "'1','2','3'",将 abc 切割一下吧
var abc = $(this).attr("data").split(","); ajax(abc[0], abc[1], abc[2]); |
2
chairuosen 2017 年 4 月 10 日
1 原因。看 jQuery 文档 attr 返回什么, js 文档函数参数如何传递。
2 解决方案, data-something="[1,2,3]"; var abc = $(this).data('something'); ajax.apply(null,abc) 应该就可以了 |
3
otakustay 2017 年 4 月 11 日
ajax.apply(null, abc.split(','))
|
4
zyzzzz 2017 年 6 月 7 日
mark 一下,学习
|
5
swuhvxee OP 第一个和第二个是对的,你可以参考
|
6
zyzzzz 2017 年 6 月 7 日
明白
|