2012-05-21 5 views
3

배열의 요소 값을 변경하는 버튼을 만들고 싶습니다. 다음 코드에 의해 그것을하려고하지만 요소가 변경되지 않습니다. 자기 학습 초심자로서, 나는 아마도 아주 명백한 것을 놓치고있을 것입니다. 누군가가 저에게 그것을 지적 할 수 있다면 감사 할 것입니다.자바 스크립트를 통해 배열 요소의 값을 변경하는 방법은 무엇입니까?

답장을 보내 주셔서 감사합니다.

<!DOCTYPE HTML> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>Change Array Value</title> 

</head> 

<body> 
<textarea id="log2"></textarea> 
<input type="button" onClick="uClicked();" value="Click!"> 
<script> 
    var fer=[]; 

    for (i=0; i< 15; i++){ 
      fer[i]=i+1; 
    } 

    function uClicked(fer){ 
     fer[12] = 10; 
     return fer[12]; 
    } 
    log2.value = "fer[12]= " + fer[12]; 

</script> 
</body> 
</html> 
+0

: http://jqfundamentals.com/#example- 2.46 – jbabey

답변

6
function uClicked(){ // remove the parameter. 

이 매개 변수는 필요하지 않습니다, 그리고 실제 fer 변수가 숨어있다.

fer은 외부 범위에서 선언되었으므로 uClicked 함수에서 액세스 할 수 있습니다.

고정 코드 : 의견

var fer=[]; 

for (i=0; i< 15; i++){ 
     fer[i]=i+1; 
} 

function uClicked(){ 
    fer[12] = 10; 
    alert(fer[12]); 
} 
+0

답변 해 주셔서 감사합니다. 코드는 내가 필요한 것을 정확하게 수행합니다! –

3

귀하의 코드

<!DOCTYPE HTML> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>Change Array Value</title> 

</head> 

<body> 
<textarea id="log2"></textarea> 
<input type="button" onClick="uClicked();" value="Click!"> 
<script> 
var fer=[]; 

for (i=0; i< 15; i++){ //use var i, otherwise you are putting i in the global scope 
     fer[i]=i+1; 
} 

function uClicked(fer){ // fer is undefined because you are not passing argument when you call the function 
    fer[12] = 10; 
    return fer[12]; 
} 
log2.value = "fer[12]= " + fer[12]; //log2 is not defined. 

</script> 
</body> 
</html> 

작업 코드 : 관련

<!DOCTYPE HTML> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>Change Array Value</title> 

</head> 

<body> 


<textarea id="log2"></textarea> 
<input type="button" onclick="uClicked();" value="Click!" /> 
<script type="text/javascript"> 
var fer = []; 
for(var i; i < 15; i++){ 
     fer[i]=i+1; 
} 
var log2 = document.getElementById("log2"); 
function uClicked(){ 
    fer[12] = 10; 
    log2.value = "fer[12]= " + fer[12]; 
    return fer[12]; 
} 
</script> 
​ 


​</body> 
</html> 
+0

답변 해 주셔서 감사합니다. 특히 내가 뭘 잘못했는지 이해하기 위해 의견이 도움이되었습니다. 나는 또한'return fer [12];가 프로그램이 작동하는 데 반드시 필요한 것은 아니라는 사실을 알고있다. 좋은 하루 되세요! –

+0

@glinyon 기꺼이 도와주세요. btw, 당신이 유용하다고 생각하는 대답을 upvoting 고려하십시오. –

+0

나는 upvote하려고했지만, 불행히도 그것은 15 평판이 필요합니다. 내가 그것을 가지고있을 때 나는 그것을 명심 할 것이다. 건배! –

관련 문제