我想用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>

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

最佳答案

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

我把你的 push 改成 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/

10-13 01:42