所以我有一个简单的输入字段:
private void Speech(string text)
{
SpeechSynthesizer synthesizer = new SpeechSynthesizer();
synthesizer.SelectVoiceByHints(VoiceGender.Neutral, VoiceAge.Adult);
synthesizer.Volume = 100;
synthesizer.Rate = 1;
synthesizer.SpeakAsync($"Welcome. {text}");
}
,但是通过react作为12个不同的DOM元素呈现。我需要从每个输入元素中获取值,或者如果不获取每个值就可以获取最高的值。我正在尝试:
<Input type="number" defaultValue="1" className="quantity"></Input>
,但输出“未定义”。你们可以帮忙吗?
答案 0 :(得分:0)
尝试一下:-
<script>
array = [];
large = 0;
for(i=0;i<12;i++){//because of 12 inputs we take i<12
array.push(document.getElementsByClassName('quantity')[i].value);
//i is started from 0 because [0] is first input
}
for(i=0;i<array.length;i++){
if(large<array[i]){
large=array[i];
}
}
alert(large);
</script>
注意:-在HTML中将className
更改为class
HTML :-
<input type="number" defaultValue="1" class="quantity">
<input type="number" defaultValue="1" class="quantity">
<!--12 inputs...-->
答案 1 :(得分:-1)
document.getElementsByClassName('quantity')
仅在您的输入具有class属性时才有效。 <input class="quantity">
而是具有className属性。
您想要获得所有输入的是
document.querySelectorAll('[className~="quantity"]')
答案 2 :(得分:-1)
尝试一下:
const maxValue = Math.max(...(Array.from(document.querySelectorAll('.quantity')).map(el => parseInt(el.value, 10))));