mon code javascript n'est pas lié au dom [duplicate]
Aug 19 2020
J'ai été mis au défi de créer une fonction qui reconnaît un nombre premier et qui fonctionnait très bien sur la console jusqu'à ce que je lie mon numéro de const à l'entrée et ma fonction au bouton.
const btn = document.querySelector('.btn1')
if (btn) {
btn.addEventListener('click', isitPrime)
}
function isitPrime() {
const number = document.querySelector('.input1').innerHTML
const answer = document.querySelector('.answer')
let isPrime = true
for (let i = 2; i < number; i++) {
if (number % i === 0) {
isPrime = false
answer.innerHTML = (`${number} is not prime ${number} can be divided by ${i}`) } if (isPrime) { answer.innerHTML = (`${number} is prime`)
}
}
}
<input type="text" class="input1">
<button class="btn1">click here</button> <br/><br/>
<div class="answer"></div>
Comment résoudre ce problème?
Réponses
3 Namysh Aug 19 2020 at 04:58
Pour obtenir la valeur d'une entrée, vous devez utiliser la value
propriété au lieu de celle- innerHtml
ci, comme ceci:
const btn = document.querySelector('.btn1')
if(btn){
btn.addEventListener('click', isitPrime)
}
function isitPrime(){
// here we get 'value' property instead of 'innerHtml' property
const number = document.querySelector('.input1').value
const answer = document.querySelector('.answer')
let isPrime = true
for(let i = 2; i < number; i++){
if(number % i === 0){
isPrime = false
answer.innerHTML = (`${number} is not prime ${number} can be divided by ${i}`) } if(isPrime){ answer.innerHTML = (`${number} is prime`)
}
}
}
<input type="text" class="input1">
<button class="btn1">click here</button> <br/><br/>
<div class="answer"></div>
1 AnupShrestha Aug 19 2020 at 05:01
document.querySelector ('. input1'). innerHTML C'est faux
Vous devez utiliser document.querySelector ('. Input1'). Value