如何从属性中收集信息并将其作为数组发送?

时间:2018-03-16 19:36:02

标签: javascript jquery arrays ajax

我想创建一个JavaScript数组,其中包含用户使用ajax发送给PHP的类.user-status的id。

这是我的HTML:

<div class="user-status" data-userid="159"></div>
<div class="user-status" data-userid="221"></div>
<div class="user-status" data-userid="3321"></div>
<div class="user-status" data-userid="13112"></div>

这是我的JavaScript:

$('.user-status').each(function() {
    $(this).attr('data-userid');
});

var users = ["", "", "", ""];

jQuery.ajax({
    url: ajaxURL,
    data: {
        action : 'user_status',
        usersid: users
    },
    dataType: 'JSON',
    type: 'POST',
    success: function (response) {

    }
});

在此之前,我无法继续,我无法将用户ID的数组发送给我。

5 个答案:

答案 0 :(得分:1)

你可以这样做:

var users = [];
jQuery('.user-status').each(function() {
    users.push($(this).attr('data-userid');
});

我从一个空数组开始,否则你最终得到一个包含8个项目的数组,其中四个是空字符串。

答案 1 :(得分:1)

您还可以使用jquery的数据属性,例如

var users = [];

$('.user-status').each(function() {
    users.push($(this).data('userid'));
});

答案 2 :(得分:0)

将用户ID推送到数组中。

$('.user-status').each(function() {
    users.push($(this).attr('data-userid'));
});

答案 3 :(得分:0)

您可以将函数map与函数$.toArray()

一起使用
var users = $('.user-status').toArray().map(function(elem) {
    return $(elem).data('userid');
});

答案 4 :(得分:0)

使用Array.from可以避免创建空数组并推送。

console.log(Array.from($('.user-status'), function(element) {
return $(element).data("userid")
}))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="user-status" data-userid="159"></div>
<div class="user-status" data-userid="221"></div>
<div class="user-status" data-userid="3321"></div>
<div class="user-status" data-userid="13112"></div>