Javascript 在“选择元素”中选择新选项时停止增量
我正在学习JavaScript,我花了一整天的时间在这上面,希望你能帮助我^^ 我有X个选择元素,如下所示: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
<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;
});
});