javascript - 如何从多个类(?)

标签 javascript arrays ajax

我想使用 ajax 从 .submitApp 发送值属性。这个类没有准备好文件。此类由事件 onclick 生成。

function setApp(schedule_id, sesi_id, no_id, waktu)
    {
        if (document.querySelector('.submit_sesi').contains(document.querySelector('.no'+no_id))) {
            alert('this session have been setted');
        }else{
            let para = document.createElement("button");
            para.innerHTML="Sesi "+waktu+" Diset";
            para.className+="btn submitApp btn-info no"+no_id+"";
            para.setAttribute("onclick", "delApp('"+sesi_id+"','"+waktu+"','"+no_id+"')");
            para.setAttribute("data1", schedule_id);
            para.setAttribute("data2", sesi_id);
            para.setAttribute("data3", no_id);
            let element = document.querySelector(".submit_sesi");
            element.appendChild(para);
        }
    }

然后我想在 submitApp 函数 onclick 中对其进行 ajax。问题出在这个函数中。

我试过这样获取多个 .submitApp 的属性

function submitApp () {
    var data1;
    var data2;
    var data3;
    var arrData = [];
    $.each($('.submitApp'), function(index, val) {
        arrData.push($('.submitApp'));
    });

   $.each(arrData, function(index, val) {
      data1 = arrData.attr('data1');
      data2 = arrData.attr('data2');
      data3 = arrData.attr('data3');
   });

   console.log(data1+data2+data3);

  //ajax start here...
}

它给我错误 arrData.attr() is not a function.

这是我的 html 标记

<div class="submit_sesi">
    <button class="btn btn-pill btn-primary submitAppointment" onclick="submitApp()">Submit Appointment</button>
</div>

我想从多个.submitApp中获取属性data1, data2, data3,然后传给ajax发送给controller。 .submitApp 类中的每个 data1、data2、data3 都是不同的。我用的是 laravel

最佳答案

我认为你只需要在那里使用索引。 它将是这样的:

我把你的推送改成了 push($this) 并创建了一个新数组以包含来自不同元素的 data1、data2、data3

    function submitApp () {
    var data1;
    var data2;
    var data3;
    var arrData = [];
    var arrresult = [];
    $.each($('.submitApp'), function(index, val) {
        arrData.push($(this));
    });

$.each(arrData, function(index, val) {
      arrresult[index]=[];
      arrresult[index][0] = val.attr('data1');
      arrresult[index][1] = val.attr('data2');
      arrresult[index][2] = val.attr('data3');
   });
    console.dir(arrresult);

  //ajax start here...
} 

关于javascript - 如何从多个类(?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57815359/

相关文章:

javascript - Angular Material UI md-select

javascript - 检查所有子复选框

c++ - 在 C++ 中使用 static_cast 转换指向数组引用的指针是否合法?

arrays - 删除 Ruby 数组中的重复项

python - 将列表中的元素分配给数组

c# - 如何在我的 Web 应用程序中使用 ajax 工具包控件?

JavaScript 不改变 CSS

javascript - React 组件,为什么你的一半 props 在表单提交时未定义?

javascript - 从服务器返回 Javascript 对象

jquery - 只是尝试将我在一个模板中使用的表单用于另一个模板