我如何使用JavaScript从dropdownlist中浏览随机项目



我想自动通过下拉列表中的随机项目。它在工作,但是它首先按顺序进行,我想随机浏览项目。

/* function to automatic select DropDownList1 items */
function selectFromDropdown(selector, text) {
  $(selector).find('option').each(function() {
    if ($(this).text() == text) {
      $(selector).val($(this).val());
      return false;
    }
  })
}
$(document).ready(function() {
  let numberOfTimes = 0;
  const time = 1000 //3s
  let values = [];
  $('#DropDownList1').find('option').each(function() {
    values.push($(this).text())
  });
  console.log(values);
  const interval = setInterval(function() {
      selectFromDropdown('#DropDownList1', values[numberOfTimes])
      if (numberOfTimes == values.length - 1) {
        clearInterval(interval);
      } else {
        numberOfTimes = numberOfTimes + 1;
      }
    },
    time);
});

在这里snnipet:https://jsfiddle.net/lucasangelo_/17lgr0kc/6/

如果要从select获取随机值,则可以使用下一个函数:

function getRandomValuesFromSelect(selector, numberOfItemsWanted)
{
    var valuesSelected = [];
    var childrenSelect = document.getElementById(selector).children;
    for (var i = 0; i < numberOfItemsWanted; i++) {
        var randomValue =  Math.floor(Math.random() * childrenSelect.length);
        var randomOption = childrenSelect[randomValue];
        if (valuesSelected.indexOf(randomOption.value) < 0) {
            valuesSelected.push(randomOption.value);
        } else {
            i--;
        }
    }
    return valuesSelected;
}

然后您可以这样称呼:

getRandomValuesFromSelect("DropDownList1", 3);

答案是:

  /* function to automatic select DropDownList1 items */
    function selectFromDropdown(selector, text) {
      $(selector).find('option').each(function() {
        if ($(this).text() == text) {
          $(selector).val($(this).val());
          return false;
        }
      })
    }
    function getRandomNumber(min, max) {
      return (Math.random() * (max - min) + min).toFixed(0);
    }
    $(document).ready(function() {
      let numeroDeVezes = 0;
      const tempoEntreCadaChamada = 1000 //3s
      let valores = [];
      $('#DropDownList1').find('option').each(function() {
        valores.push($(this).text())
      });
      console.log(valores);
      const interval = setInterval(function() {
          const randomNumber = getRandomNumber(0, valores.length - 1);
          const randomItem = valores[randomNumber];
          //console.log(randomItem);
          selectFromDropdown('#DropDownList1', randomItem),
            console.log(`${numeroDeVezes} - Chamou do PostBack para ${randomItem}`);
          //__doPostBack('LButton3', 'OnClick');
          if (numeroDeVezes == valores.length - 1) {
            console.log("Percorreu todos, mata o setInterval");
            clearInterval(interval);
          } else {
            numeroDeVezes = numeroDeVezes + 1;
          }
        },
        tempoEntreCadaChamada);
    });

谢谢你们!

最新更新