Как передать значение массива в функцию javascript - PullRequest
0 голосов
/ 25 мая 2019

Я хотел бы знать, как передать значение в массиве функции ajax в javascript. Для каждого идентификатора вызовите функцию в javascript. Как передать каждый идентификатор в массиве и вызвать функцию

var listid=["fund","trans","ins"]; 

getData(id){
var li = $.ajax({
    url: "/en",
    method: 'get',
    global: false,
    async: false,
    data: {
      idvalue: id
    },
    success: function(value) {
      return value;
    }
  }).responseText;
 console.log(JSON.parse(li));

}

Ответы [ 6 ]

1 голос
/ 25 мая 2019

Вы можете использовать:

listid.forEach(function (id) { getData(id) });
0 голосов
/ 25 мая 2019

Вы можете легко перебирать список, используя forEach.

var listid=["fund","trans","ins"]; 

listid.forEach(function(id) {
   getData(id);
});

function getData(id) {
   var xhr = $.ajax({
    url: "/en",
    method: 'get',
    global: false,
    async: false,
    data: {
      idvalue: id
    },
    success: function(value) {
      return value;
    }
  }).always(function(data,  textStatus, jqXHR) {
      // deal with the data
  })
}

Если вы используете более новую версию Jquery, то обратные вызовы jqXHR.success (), jqXHR.error () и jqXHR.complete () удаляются с jQuery 3.0. Вместо этого вы можете использовать jqXHR.done (), jqXHR.fail () и jqXHR.always ().

function getData(id) {
   var xhr = $.ajax({
    url: "/en",
    method: 'get',
    global: false,
    async: false,
    data: {
      idvalue: id
    },
    success: function(value) {
      return value;
    }
  })
  .done(function(data, textStatus, jqXHR ) {
    // do something with value
  })
  .fail(function(jqXHR, textStatus, errorThrown) {
    alert( "error" );
  })
  .always(function() {
    alert( "complete" );
  });
}
0 голосов
/ 25 мая 2019

var listid=["fund","trans","ins"]; 

for(var i = 0 ; i < listid.length ; i++){
getData(listid[i]);

}
function getData(id){
var li = $.ajax({
    url: "/en",
    method: 'get',
    global: false,
    async: false,
    data: {
      idvalue: id
    },
    success: function(value) {
      return value;
    }
  }).responseText;
 console.log(JSON.parse(li));

}
0 голосов
/ 25 мая 2019

вы можете использовать $ .each для значения вашего массива

var listid=["fund","trans","ins"]; 
    $.each(listid, function( index, value ) {
      //console.log( index + ": " + value );
      getData(value );  //uncomment this for actual implementation
    });
    
    function getData(id){
    var li = id;
    /*$.ajax({
      url: "/en",
      method: 'get',
      global: false,
      async: false,
      data: {
        idvalue: id
      },
      success: function(value) {
        return value;
      }
    }).responseText;*/
    //console.log(JSON.parse(li));
    console.log(li);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
0 голосов
/ 25 мая 2019

Применить цикл к вашему массиву id.

var listid=["fund","trans","ins"]; 

for(let i = 0, len = listid.length; i < len; i++) {
    getData(listid[i]);
}
0 голосов
/ 25 мая 2019

Вы можете использовать функцию map для массивов.Это функция JavaScript, которая принимает обратный вызов в качестве параметра.Вы можете передать любую функцию в качестве обратного вызова, и она будет вызывать ее для каждого значения в этом массиве.

...