从众多输入之一中获得最高价值

时间:2019-06-14 18:29:58

标签: javascript html reactjs

所以我有一个简单的输入字段:

  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>

,但输出“未定义”。你们可以帮忙吗?

3 个答案:

答案 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))));