2017-10-22 3 views
1

입력 텍스트 필드의 값을 내 '데이터'배열에 넣으려고합니다. 무엇이 잘못되었는지 잘 모르겠습니다. for 루프 내에서 console.log(input)을 수행하면 텍스트 필드에 입력 한 값이 나타납니다. 하지만 console.log(data)을 입력하면 {text : ""}으로 표시됩니다. 당신이 그렇게 array push function를 사용하여 수행 할 수for 루프 for querySelectorALL

  var inputText = document.querySelectorAll("input[type='text']"); 
      var input = ""; 

      for(var index = 0; index < inputText.length; index++){ 
       input = inputText[index].value; 
       //console.log(input); 
      } 

      var data = {'text' : input}; 

      //console.log(data); 
+3

당신은 객체를 .push 필요하고 어떻게 그 루프 내부 : 특정 요소를 얻으려면, 일반적인 관행은 (같은 id를 사용해야하는 다른 요소) 고유의 id를 할당하지 않는 것입니다 : 'var data = []; for (var index = 0; index mplungjan

+1

['Array'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array#Methods_2) 메소드에 대해 배우십시오 :'Array .from (inputText) .map (elem => elem.value)'. – Xufox

+0

단일 "입력 텍스트 필드 값"을 언급하고 "배열"및 "값"을 언급하기 때문에 여러 요소 또는 단일 요소의 값이 필요한지 여부는 명확하지 않습니다. 또한,'{ 'text': input}'은 배열이 아니지만 Array 객체에'[]'가 사용됩니다. – Slai

답변

1

이 시도 :

+1

이미 주석에 응답하였습니다. 제 의견으로는 대답 할 가치가 없지만 실제로 데이터에 무엇이든 넣지는 않습니다. – mplungjan

+0

@mplungjan 어떻게 그런가요, 코멘트 섹션은 코멘트를위한 것이며 답변 섹션이 있습니다. – M0ns1f

+0

우리는 서로를 돕기 위해 여기에 대답하지 말아야한다.) – M0ns1f

-1

querySelectorAll

  var inputText = document.querySelectorAll("input[type='text']"); 
 
      var data = []; 
 
     
 
      for(var index = 0; index < inputText.length; index++){ 
 
       data.push(inputText[index].value); 
 
      } 
 

 
      
 
      console.log(data);
<input type="text" name="test" value="test" />
여러 요소이며, 하나의 요소에 대한 querySelector.

var input1 = document.getElementById("input1") 
 

 
var data = { text: input1.value } 
 

 
console.log(data)
<input id="input1" value="1"> 
 
<input id="input2" value="2">