简体   繁体   中英

Simple ternary operator not working

I don't know why this simple ternary operator doesn't work.

var numOne = prompt("Enter first number");
var numTwo = prompt("Enter second number");

var outcome = numOne > numTwo ? "First number is bigger" : "Second number is bigger";

document.getElementById("paragraph").innerHTML(outcome); 

innerHTML is a property not a method.

The usage should be

document.getElementById("paragraph").innerHTML = outcome;

There is a syntax error in your code, innerHTML is a property that you need to assign a value to, not a function. You also need to convert your values to integers otherwise your comparison will not work in all cases.

 var numOne = "25" var numTwo = "111" var outcome = parseInt(numOne) > parseInt(numTwo) ? "First number is bigger" : "Second number is bigger"; var outcome2 = numOne > numTwo ? "First number is bigger" : "Second number is bigger"; document.getElementById("paragraph").innerHTML="Using integers: " + outcome; document.getElementById("paragraph2").innerHTML="Using strings: " + outcome2; 
 <div id="paragraph"></div> <div id="paragraph2"></div> 

  1. Use parseInt as prompt will give ua string.
  2. .innerHTML is a property not a method (see this link )

 var numOne = prompt("Enter first number"); var numTwo = prompt("Enter second number"); var outcome = parseInt(numOne) > parseInt(numTwo) ? "First number is bigger" : "Second number is bigger"; document.getElementById("paragraph").innerHTML = outcome; 
 <div id="paragraph"></div> 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM