我对自己的能力并不过分自信但是这里有。我希望JQuery找到具有特定类的所有元素的数据属性。然后我希望它将它们添加到ajax dataString数组。
该类有6个元素,所有元素都具有data属性。而不是将它们全部包含在id属性中,它们确实是一种更简单的方法。这会有用。
这是
var data[] = $('.sidescroller').attr('data');
var dataString = 'function=' + scripts + '&data[]=' + data[];
//execute PHP
$.ajax({
type: 'POST',
data: dataString,
url: '<?php echo $thisposturl;?>?scripts',
任何想法如何做。
非凡
答案 0 :(得分:3)
首先,不,.attr()
只会获取列表中第一个元素的属性
var data = $('.sidescroller').map(function() {
return $(this).attr('data');
}).get();
其次,不要手工构造查询参数,它容易出错,也可能被滥用:
将数据参数作为一组键值对发送:
data: {
'function': scripts,
'data': data
}
答案 1 :(得分:0)
我认为.attr()函数适用于匹配元素中的第一个元素,更好的方法是使用map函数。
var dataArr = [];
$(".sidescroller").map(function(){
dataArr.push($(this).attr("data"));
});
答案 2 :(得分:0)
根据HTML5 specs.自定义data
,属性应如下命名:data-name
。然后,您可以使用.data
来获取数据。示例如下:
<强> HTML 强>
<div id="foo" class="has-data" data-test="foo"></div>
<div id="bar" class="has-data" data-test="bar"></div>
<强>的JavaScript 强>
var data = {};
$(".has-data").each(function(){
data[this.id] = $(this).data("test");
});
$.post('/', data);
答案 3 :(得分:0)
var dataString = 'function=' + scripts;
$('.sidescroller').each(function() {
dataString += '&data=' + $(this).attr('data');
}
//execute PHP
$.ajax({
type: 'POST',
data: dataString,
url: '<?php echo $thisposturl;?>?scripts',
这会有用吗?
答案 4 :(得分:0)
我认为你在寻找的是
var data= [];
$('.sidescroller[data]').each(function(){
data.push($(this).attr('data'))
});
var strdata = data.join(",");
alert(strdata );
您可以找到工作样本here。