Javascript jika pernyataan lain untuk mencocokkan nilai saat ini dari opsi pilih tidak berfungsi sebagaimana mestinya, apa yang saya lewatkan di sini. Itu terus mencatat opsi pertama ("javascript hebat") untuk semua nilai select.options, alih-alih yang dipilih saat ini

//select target element 
var allQtyOptions = document.getElementsByTagName("select");

var myOptions = allQtyOptions[0].options;

//create array 
var myArray = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];


/*comparing index of array to select.options index value with parse*/ 

function myInputCalc() {

	if (myArray.indexOf(1) === parseInt(myOptions[1].value)) { 
		console.log("javascript is great");		
	}
	else if (myArray.indexOf(2) === parseInt(myOptions[2].value)) {
		console.log("I LOVE JAVASCRIPT");
			}
	else if (myArray.indexOf(3) === parseInt(myOptions[3].value) { 
		console.log("awesome");
			}
	else if (myArray.indexOf(4) === parseInt(myOptions[4].value)) { 
		console.log("great");
			}
    else if (myArray.indexOf(5) === parseInt(myOptions[5].value)) { 
		console.log("try again");
			}
    else if (myArray.indexOf(6) === parseInt(myOptions[6].value)) { 
		console.log("yi pee");
			}
    else if (myArray.indexOf(7) === parseInt(myOptions[7].value)) {
		console.log("its very simple");
			}
	else if (myArray.indexOf(8) === parseInt(myOptions[8].value)) { 
		console.log("nice one");
			}
	else if (myArray.indexOf(9) === parseInt(myOptions[9].value)) { 
		console.log("keep at it");
			}
    else if (myArray.indexOf(10) === parseInt(myOptions[10].value)) { 
		console.log("you will succeed");
			};
    }
                             <div>
                                <select class="select-option" onchange="myInputCalc()" >
									<option value="0">0</option>
                                    <option value="1">1</option>
                                    <option value="2">2</option>
                                    <option value="3">3</option>
                                    <option value="4">4</option>
                                    <option value="5">5</option>
                                    <option value="6">6</option>
                                    <option value="7">7</option>
                                    <option value="8">8</option>
                                    <option value="9">9</option>
                                    <option value="10">10</option>
                                </select>
                            </div>
-1
Duke Ngboki 19 Agustus 2017, 14:58

1 menjawab

Dalam pernyataan if Anda, Anda membandingkan nilai opsi pertama 1 dengan nilai indeks 1 dari array. Ini selalu true, karena kondisi berikutnya selalu true, juga, seperti yang berikutnya. Tetapi Anda memiliki struktur kondisi berkelanjutan, di mana jika kondisi pertama adalah true, yang berikutnya tidak pernah dievaluasi.

Pada dasarnya Anda dapat memeriksa indeks yang dipilih dan menguji indeks array.

Tetapi Anda bisa menggunakan hanya indeks yang dipilih dari tag pilih dan menggunakannya sebagai indeks untuk larik khusus.

var allQtyOptions = document.getElementsByTagName("select");
var myOptions = allQtyOptions[0].options;

function myInputCalc() {
    var msg = ["javascript is great", "I LOVE JAVASCRIPT", "awesome", "great", "try again", "yi pee", "its very simple", "nice one", "keep at it", "you will succeed"];
    myOptions.selectedIndex && console.log(msg[myOptions.selectedIndex - 1]);
}
<div>
    <select class="select-option" onchange="myInputCalc()">
        <option value="0">0</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
        <option value="9">9</option>
        <option value="10">10</option>
    </select>
</div>
0
Nina Scholz 19 Agustus 2017, 12:21