Javascript 在“选择元素”中选择新选项时停止增量

Javascript 在“选择元素”中选择新选项时停止增量,javascript,html,Javascript,Html,我正在学习JavaScript,我花了一整天的时间在这上面,希望你能帮助我^^ 我有X个选择元素,如下所示: <select class="custom-select select-group mb-3" id="name_typage_0"> <option class="select-items" value="" selected>Sélectionnez..</option> <option class="select-items" valu

我正在学习JavaScript,我花了一整天的时间在这上面,希望你能帮助我^^

我有X个选择元素,如下所示:

<select class="custom-select select-group mb-3" id="name_typage_0">
 <option class="select-items" value="" selected>Sélectionnez..</option>
 <option class="select-items" value="designation">Désignation</option>
 <option class="select-items" value="email">Email</option>
 <option class="select-items" value="ville">Ville</option>
 <option class="select-items" value="activite">Secteur Activité</option>
</select>

首先,只有当
select
元素是页面上的第一个或唯一一个元素时,这才有效。最好尽可能按ID跟踪,因为ID应该是唯一的。。。或者,您可以使用querySelectorAll并遍历生成的数组。我喜欢让事情尽可能简单,因此假设页面上有一个
select
元素,我会像这样使用
select
选择器:

var计数=0;
var select=document.querySelector('select');
select.addEventListener('change',函数(e){
如果(e.target.value==“Séselectionnez”){
计数+=1;
控制台日志(计数);
}
});

其他
塞内兹。。
试试这个

JS(带Jquery)

HTML


选择0/3个元素!
塞内兹。。
签名
电子邮件
维尔
部门活动
塞内兹。。
签名
电子邮件
维尔
部门活动
塞内兹。。
签名
电子邮件
维尔
部门活动

我使用的是香草JavaScript


致以最诚挚的问候

我将循环所有元素并计算它,而不是跟踪上次选择的内容。对之前的答案感到抱歉。。。我完全误解了你的问题。我下面的回答应该能告诉你你想要什么,你能给我举个例子吗?谢谢你的回答。遗憾的是,我至少有4个选择,而且可能还有更多选择,因为我需要使其动态化,所以它无法工作
selects.forEach((item) => {
item.addEventListener('change', (event) => {
let comptTest = [];

  if(item.options[item.selectedIndex].text === 'Sélectionnez..'){
     count = -1;
  }

  if(item.options[item.selectedIndex].text !== 'Sélectionnez..'){
     if(comptTest.includes('lundi')){
        count = 0;
     }else{ 
        count = +1; 
        comptTest.push('lundi');
     }
  }

  total += count;
  });
});
$('select').change(function() {
    var nbr = 0;

    $('select').each(function() {   
    if( $(this).val() !== '' ) nbr++;
  });

  $('#elementNbr').html(nbr);
});
<div>
  <span id="elementNbr">0</span> / 3 element(s) select !
</div>

<select class="custom-select select-group mb-3" id="name_typage_0">
  <option class="select-items" value="" selected>Sélectionnez..</option>
  <option class="select-items" value="designation">Désignation</option>
  <option class="select-items" value="email">Email</option>
  <option class="select-items" value="ville">Ville</option>
  <option class="select-items" value="activite">Secteur Activité</option>
</select>

<select class="custom-select select-group mb-3" id="name_typage_0">
  <option class="select-items" value="" selected>Sélectionnez..</option>
  <option class="select-items" value="designation">Désignation</option>
  <option class="select-items" value="email">Email</option>
  <option class="select-items" value="ville">Ville</option>
  <option class="select-items" value="activite">Secteur Activité</option>
</select>

<select class="custom-select select-group mb-3" id="name_typage_0">
  <option class="select-items" value="" selected>Sélectionnez..</option>
  <option class="select-items" value="designation">Désignation</option>
  <option class="select-items" value="email">Email</option>
  <option class="select-items" value="ville">Ville</option>
  <option class="select-items" value="activite">Secteur Activité</option>
</select>
document.querySelectorAll('.custom-select').forEach((item) => {

    item.addEventListener('change', (event) => {

        let count = 0;

        document.querySelectorAll('.custom-select').forEach((SelectElem) => {

          if(SelectElem.value != '') count++;

        });

        document.querySelector('#elementNbr').textContent = count;

    });

});