如何使用JQuery从select元素中获得N个选项

如何使用JQuery从select元素中获得N个选项

我们的任务是从选择元素中获得随机的N个选项。以下是一些方法。
步骤 1:

  • 首先在数组中获得所有选项元素的文本。
  • 产生一个随机的数组索引,并获得该索引的选项。
  • 将最后一个元素与当前的随机索引交换,并将数组的长度减去1。
  • 重复这个过程,直到获得n个选项。

例子1:这个例子使用了上面讨论的方法。

<!DOCTYPE HTML>
<html>
  
<head>
    <title>
        How to get N options from the <select> element.
    </title>
    <script src=
"https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js">
    </script>
</head>
  
<body style="text-align:center;">
    <h1 style="color: green">  
            GeeksForGeeks  
        </h1>
    <p id="GFG_UP" 
       style=
"font-size: 15px; font-weight: bold;">
    </p>
    <select id="elmt">
        <option value="v1"> YEW </option>
        <option value="v4"> ZAC </option>
        <option value="v2"> ABC </option>
        <option value="v3"> DFG </option>
        <option value="v5"> MNO </option>
        <option value="v9"> STU </option>
    </select>
    <br>
    <br>
    <button onclick="gfg_Run()">
        Click Here
    </button>
    <p id="GFG_DOWN" 
       style="color:green;
              font-size: 30px;
              font-weight: bold;">
    </p>
    <script>
        var el_up = document.getElementById("GFG_UP");
        var el_down = document.getElementById("GFG_DOWN");
        el_up.innerHTML = 
"Click on the button to get the random n "+
          "options from the < select > element.";
        var arr = [];
        ("#elmt").find('option').each(function() {
            arr.push((this).text());
        });
  
        function getElmts(arr, n) {
            var res = new Array(n),
                len = arr.length,
                t = new Array(len);
            while (n--) {
                var x = Math.floor(Math.random() * len);
                res[n] = arr[x in t ? t[x] : x];
                t[x] = --len in t ? t[len] : len;
            }
            return res;
        }
  
        function gfg_Run() {
            el_down.innerHTML = getElmts(arr, 5);
  
        }
    </script>
</body>
  
</html>

输出:

  • 在点击按钮之前。
    如何使用JQuery从select元素中获得N个选项
  • 点击该按钮后。
    如何使用JQuery从select元素中获得N个选项

步骤 2:

  • 通过生成随机数字来定义选项的优先级,对选项进行排序。
  • 使用.slice()方法来获得前N个选项。

例子2:这个例子使用了上面讨论的方法。

<!DOCTYPE HTML>
<html>
  
<head>
    <title>
        How to get N options from the <select> element.
    </title>
    <script src=
"https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js">
    </script>
</head>
  
<body style="text-align:center;">
    <h1 style="color: green">  
            GeeksForGeeks  
        </h1>
    <p id="GFG_UP" 
       style="font-size: 15px;
              font-weight: bold;">
    </p>
    <select id="elmt">
        <option value="v1"> YEW </option>
        <option value="v4"> ZAC </option>
        <option value="v2"> ABC </option>
        <option value="v3"> DFG </option>
        <option value="v5"> MNO </option>
        <option value="v9"> STU </option>
    </select>
    <br>
    <br>
    <button onclick="gfg_Run()">
        Click Here
    </button>
    <p style="color:green;">
    </p>
    <script>
        var el_up = document.getElementById("GFG_UP");
        var el_down = document.getElementById("GFG_DOWN");
        el_up.innerHTML = 
"Click on the button to get the random n "+
          "options from the < select > element.";
        var arr = [];
        ("#elmt").find('option').each(function() {
            arr.push((this).text());
        });
  
        function gfg_Run() {
            var n = 5;
            const shuffle = arr.sort(() => 0.5 - Math.random());
            let ans = shuffle.slice(0, n);
            el_down.innerHTML = ans;
        }
    </script>
</body>
  
</html>

输出:

  • 在点击按钮之前。
    如何使用JQuery从select元素中获得N个选项
  • 点击该按钮后。
    如何使用JQuery从select元素中获得N个选项

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程