2016-11-12 56 views
0

我試圖用按鈕對id =「demo」的內容進行排序,但每次點擊我的按鈕時我什麼也得不到。排序數組的錯誤

點擊按鈕後,我希望select()能夠讀取id =「demo」(一旦隨機數字輸出)的內容並將它們排序/轉儲到id =「demo2」中。

我認爲正在發生的是選擇()正在讀VAR改編爲空白陣列,而不是數字的隨機分配的數組(因爲它是在第一個()結束)

<input id="input1" type="number" min="10" max="100" onchange="first(); sortButton();"> 

<p id="demo"></p> 

<!-- button appears here, once a value is entered into the input field --> 
<p id="buttons1" onclick="select();"></p> 


<p id="demo2"></p> 

<script> 


// once input1 value changes this outputs a random value less than N (value of input1) N times, then dumps out the random numbers in id="demo" 

function first() { 
var N = document.getElementById("input1").value; 
var arr = []; 
while(arr.length < N) 

{var randomnumber = Math.ceil(Math.random()*N); 
arr[arr.length] = randomnumber;} 
document.getElementById("demo").innerHTML = arr;} 


// Once input1 value changes, this buttons appears in id="buttons" 
function sortButton() {document.getElementById("buttons1").innerHTML = 
'<button type="button" onclick="select();">Select Sort</button>';} 



// meant to sort the random numbers in id="demo" once the button is clicked 
function select() { 
document.getElementById("demo2").innerHTML = arr.sort(function(a,b){return a - b});} 




</script> 
+0

是您的代碼只是沒有那麼好格式化?我幾乎會認爲'select'是'first'函數的一部分,當你運行代碼時會發生什麼變化,你在調試器中是否有錯誤?單擊按鈕時是否顯示錯誤? – Icepickle

回答

0

您必須在函數之外聲明var arr = []。這是一個工作程序。希望它能幫助:)

// once input1 value changes this outputs a random value less than N (value of input1) N times, then dumps out the random numbers in id="demo" 
 
var arr = []; 
 

 
function first() { 
 
var N = document.getElementById("input1").value; 
 
while(arr.length < N){ 
 

 
    var randomnumber = Math.ceil(Math.random()*N); 
 
    arr[arr.length] = randomnumber; 
 
} 
 
document.getElementById("demo").innerHTML = arr; 
 
} 
 

 

 
// Once input1 value changes, this buttons appears in id="buttons" 
 
function sortButton() { 
 
    document.getElementById("buttons1").innerHTML = 
 
'<button type="button" onclick="select();">Select Sort</button>'; 
 
} 
 

 

 

 
// meant to sort the random numbers in id="demo" once the button is clicked 
 
function select() { 
 
document.getElementById("demo2").innerHTML = arr.sort(function(a,b){return a - b}); 
 
}
<input id="input1" type="number" min="10" max="100" onchange="first(); sortButton();"> 
 

 
<p id="demo"></p> 
 

 
<!-- button appears here, once a value is entered into the input field --> 
 
<p id="buttons1" onclick="select();"></p> 
 

 

 
<p id="demo2"></p>

+0

這個工作!非常感謝。對不起,如果這似乎很簡陋,我試圖學習js所以很多東西滑倒我 – anon

+0

@anon你非常歡迎:)! – HenryDev