Javascript选择器

时间:2018-12-04 22:15:45

标签: javascript html

我必须制作一个html页面,我可以从列表中选择一个随机的人(这是我的课程)。

我这样做了,但是现在我有了标记,忽略了随机选择器中缺席的人。

就像电子注册表一样。

如果单击该按钮,则应从列表中删除该名称并禁用该按钮。

我的问题是我无法从列表中删除特定元素。

那会是这样的:

不删除字符串数,而不是删除与按钮含义相同的实际字符串。

对匈牙利的评论我感到很抱歉,但是它的名字和我的某些疑问对我来说都是这样。

<body>
   <h1 align="center"> Random választó MÉG SZAR </h1>
   <div align="center">
      <div>
         <button type="randomEmber" onclick="randomEmber()">Random Ember	Kiválasztása</button>
         <input name="randomEmber" id="randomEmber" placeholder="Ne írj ide,el fog tűnni"> </input>
      </div>
      <br />
      <br />
      <br />
      Kik a hiányzók? <!-- ezt csináld meg -->
      <br />
      <br />
      <button onClick="this.disabled = true;Képes();" value="Képes"> Képes </button>
      <button onClick="this.disabled = true;Korsós();" value="Korsós"> Korsós </button>
      <button onClick="this.disabled = true;Lálóczki();" value="Lálóczki"> Lálóczki </button>
      <button onClick="this.disabled = true;Laukó();" value="Laukó"> Laukó </button>
      <button onClick="this.disabled = true;Neményi();" value="Neményi"> Neményi </button> <!-- ribait törli -->
      <button onClick="this.disabled = true;Pálya();" value="Pálya"> Pálya </button>
      <button onClick="this.disabled = true;Panajoth();" value="Panajoth"> Panajoth </button>
      <button onClick="this.disabled = true;Prepszl();" value="Prepszl"> Prepszl </button>
      <br />
      <br />
      <button onClick="this.disabled = true;Ribai();" value="Ribai"> Ribai </button> <!-- sipkát törli -->
      <button onClick="this.disabled = true;Sipka();" value="Sipka"> Sipka </button> <!-- Sipost törli -->
      <button onClick="this.disabled = true;Sipos();" value="Sipos"> Sipos </button> <!-- Stírt törli -->
      <button onClick="this.disabled = true;Stír();" value="Stír"> Stír </button> <!-- Szombatit törli -->
      <button onClick="this.disabled = true;Szombati();" value="Szombati"> Szombati </button> <!-- Tóthot törli -->
      <button onClick="this.disabled = true;Tóth();" value="Tóth"> Tóth </button> <!-- Vasst törli -->
      <button onClick="this.disabled = true;Vass();" value="Vass"> Vass </button> <!-- Zsolnait törli -->
      <button onClick="this.disabled = true;Zsolnai();" value="Zsolnai"> Zsolnai </button> <!-- ez jo -->
   </div>
   <br />
   <p align="center">Névsor:</p>
   <br />
   <p id="demo" align="center"></p>
   <script>
      var ember = Array(
      	"Képes",
      	"Korsós",
      	"Lálóczki",
      	"Laukó",
      	"Neményi",
      	"Pálya",
      	"Panajoth",
      	"Prepszl",
      	"Ribai",
      	"Sipka",
      	"Sipos",
      	"Stír",
      	"Szombati",
      	"Tóth",
      	"Vass",
      	"Zsolnai"
      );
      
      function randomEmber() {
      	var randomEmber = ember[Math.floor(Math.random() * ember.length)];
      	document.getElementById('randomEmber').value = randomEmber;
      }
      
      document.getElementById("demo").innerHTML = ember;
      
      // nem elegans de jo ez
      
      function Képes() {
        	ember.shift();
      hianyzo.push("Képes");
        	document.getElementById("demo").innerHTML = ember;
      }
      
      function Korsós() {
        	ember.splice(1,1);
      hianyzo.push("Korsós");
        	document.getElementById("demo").innerHTML = ember;
      }
      
      function Lálóczki() {
        	ember.splice(2,1);
      hianyzo.push("Lálóczki");
        	document.getElementById("demo").innerHTML = ember;
      }
      
      function Laukó() {
        	ember.splice(3,1);
      hianyzo.push("Laukó");
        	document.getElementById("demo").innerHTML = ember;
      }
      
      function Neményi() {
        	ember.splice(4,1);
      hianyzo.push("Neményi");
        	document.getElementById("demo").innerHTML = ember;
      }
      
      function Pálya() {
        	ember.splice(5,1);
      hianyzo.push("Pálya");
        	document.getElementById("demo").innerHTML = ember;
      }
      
      function Panajoth() {
        	ember.splice(6,1);
      hianyzo.push("Panajoth");
        	document.getElementById("demo").innerHTML = ember;
      }
      
      function Prepszl() {
        	ember.splice(7,1);
      hianyzo.push("Prepszl");
        	document.getElementById("demo").innerHTML = ember;
      }
      
      function Ribai() {
        	ember.splice(9,1);
      hianyzo.push("Ribai");
        	document.getElementById("demo").innerHTML = ember;
      }
      
      function Sipka() {
        	ember.splice(10,1);
      hianyzo.push("Sipka");
        	document.getElementById("demo").innerHTML = ember;
      }
      
      function Sipos() {
        	ember.splice(11,1);
      hianyzo.push("Sipos");
        	document.getElementById("demo").innerHTML = ember;
      }
      
      function Stír() {
        	ember.splice(12,1);
      hianyzo.push("Stír");
        	document.getElementById("demo").innerHTML = ember;
      }
      
      function Szombati() {
        	ember.splice(13,1);
      hianyzo.push("Szombati");
        	document.getElementById("demo").innerHTML = ember;
      }
      
      function Tóth() {
        	ember.splice(14,1);
      hianyzo.push("Tóth");
        	document.getElementById("demo").innerHTML = ember;
      }
      
      function Vass() {
        	ember.splice(15,1);
      hianyzo.push("Vass");
        	document.getElementById("demo").innerHTML = ember;
      }
      
      function Zsolnai() {
        	ember.pop();
      hianyzo.push("Zsolnai");
        	document.getElementById("demo").innerHTML = ember;
      }
      // nem elegans de jo ez
      
      // csinalj minden embernek egay myfunvtion2...t-ot ember.slice(0,x)  el
      
      if (randomEmber == null){
       	alert("Nincs senki ma az órán????");
      }
      
       document.getElementById("demo").innerHTML = txt;
      
      // TUDOTT HIBÁK:
      // ha nincs egy név se,akk undefiniedet ír ki az input
      
   </script>
   <br />
   <p align="center"> Hiányzók: </p>
   <script>
      var hianyzo = Array(
      );
      
      document.getElementById("hianyzo").innerHTML = hianyzo;
   </script>
</body>

1 个答案:

答案 0 :(得分:1)

您的代码向我表明您是个新手,所以我不会对您的代码进行大修。您应该知道,不需要创建单个函数即可从数组中删除单个名称。

您只需一个:

  function remove(name) {
   ember.splice( ember.indexOf(name), 1);
   document.getElementById("demo").innerHTML = ember;
  }

通过使用indexOf,您可以在数组中搜索传入名称的正确索引。

remove('Képes')

以上将在数组中搜索Képes并删除该名称。然后它将在demo区域中重新创建数组。

在注释中,您还指出需要将删除的用户添加到hianyo。以下更改将使您能够做到这一点:

function remove(name) {
  ember.splice(ember.indexOf(name), 1); //remove from ember
  hianyzo.push(name); //add to hianyzo
  document.getElementById("demo").innerHTML = ember; // show updated ember
  document.getElementById("demo2").innerHTML = hianyzo; // show updated hianyzo
}

在上面的任何时候,只要从ember中删除名称,就将其添加到hianyzo,然后显示两个数组的更改。

除此更改外,我还更新了您的随机函数:

function randomEmber() {
if(ember.length === 0) { alert("Nincs senki ma az órán????"); return; } 
//if the array is empty, alert the user and stop.
// otherwise...
var e = ember[Math.floor(Math.random() * ember.length)]; //get random user
document.getElementById("randomEmber").value = e; //show random user
}

以上内容仅检查您是否已删除所有同学。如果有,它将提醒用户并停止该功能的继续。这样可以防止undefined出现在您的randomEmber框中。

var ember = Array("Képes", "Korsós", "Lálóczki", "Laukó", "Neményi", "Pálya", "Panajoth", "Prepszl", "Ribai", "Sipka", "Sipos", "Stír", "Szombati", "Tóth", "Vass", "Zsolnai"), hianyzo = [];

function randomEmber() {
  if(ember.length === 0) { alert("Nincs senki ma az órán????"); return; } //if the array is empty, alert the user and stop.
  var e = ember[Math.floor(Math.random() * ember.length)]; //get random user
  document.getElementById("randomEmber").value = e; //show random user
}

function remove(name) {
  ember.splice(ember.indexOf(name), 1); //remove from ember
  hianyzo.push(name); //add to hianyzo
  document.getElementById("demo").innerHTML = ember; // show updated ember
  document.getElementById("demo2").innerHTML = hianyzo; // show updated hianyzo
}

document.getElementById("demo2").innerHTML = hianyzo; // show initial hianyzo
document.getElementById("demo").innerHTML = ember; //show initial ember
<h1 align="center"> Random választó MÉG SZAR </h1>
<div align="center">
  <div>
    <button type="randomEmber" onclick="randomEmber()">Random Ember	Kiválasztása</button>
    <input name="randomEmber" id="randomEmber" placeholder="Ne írj ide,el fog tűnni"> </input>
  </div>
  <br />
  <br />
  <br /> Kik a hiányzók?
  <!-- ezt csináld meg -->
  <br />
  <br />
  <button onClick="this.disabled = true;remove('Képes');" value="Képes"> Képes </button>
  <button onClick="this.disabled = true;remove('Korsós');" value="Korsós"> Korsós </button>
  <button onClick="this.disabled = true;remove('Lálóczki');" value="Lálóczki"> Lálóczki </button>
  <button onClick="this.disabled = true;remove('Laukó');" value="Laukó"> Laukó </button>
  <button onClick="this.disabled = true;remove('Neményi');" value="Neményi"> Neményi </button>
  <!-- ribait törli -->
  <button onClick="this.disabled = true;remove('Pálya');" value="Pálya"> Pálya </button>
  <button onClick="this.disabled = true;remove('Panajoth');" value="Panajoth"> Panajoth </button>
  <button onClick="this.disabled = true;remove('Prepszl');" value="Prepszl"> Prepszl </button>
  <br />
  <br />
  <button onClick="this.disabled = true;remove('Ribai');" value="Ribai"> Ribai </button>
  <!-- sipkát törli -->
  <button onClick="this.disabled = true;remove('Sipka');" value="Sipka"> Sipka </button>
  <!-- Sipost törli -->
  <button onClick="this.disabled = true;remove('Sipos');" value="Sipos"> Sipos </button>
  <!-- Stírt törli -->
  <button onClick="this.disabled = true;remove('Stír');" value="Stír"> Stír </button>
  <!-- Szombatit törli -->
  <button onClick="this.disabled = true;remove('Szombati');" value="Szombati"> Szombati </button>
  <!-- Tóthot törli -->
  <button onClick="this.disabled = true;remove('Tóth');" value="Tóth"> Tóth </button>
  <!-- Vasst törli -->
  <button onClick="this.disabled = true;remove('Vass');" value="Vass"> Vass </button>
  <!-- Zsolnait törli -->
  <button onClick="this.disabled = true;remove('Zsolnai');" value="Zsolnai"> Zsolnai </button>
  <!-- ez jo -->
</div>
<br />
<p align="center">Névsor:</p>
<br />
<p id="demo" align="center"></p>
<br />
<p align="center"> Hiányzók: </p>
<p id="demo2"></p>