2012-11-15 2 views
1

일반 JS를 작성하려고합니다. 입력에서 ID와 값을 가져옵니다. 그런 다음이를 JsonObject에 넣어 서버로 다시 전달하십시오. ,루프에서 listitem/unordered 목록의 입력 값을 얻는 방법

<ul id="myList" data-role="listview" data-inset="true"> 
    <li> Field One <input id="Field_One" /></li> 
    <li> Field Two <input id="Field_Two" /></li> 
    <li> Field Three <input id="Field_Three" /></li> 
    <li> Field Four <input id="Field_Four" /></li> 
</ul> 

내가을 listitem에 대한 데이터를 얻을 수

function Test(){ 
    var unorderedList = document.getElementById('myList'); 
    var ListItems = unorderedList.getElementsByTagName('li'); 
    var listID 

    for (var i = 0; i < ListItems.length; i++) { 
     listID = ListItems[i].firstChild.data; 
     //alert(listID); 
    }; 
} 

하지만 텍스트 ID 또는 값을 얻기 위해 더 갈 수 없었다 : 목록은 다음과 같다. (글쎄, 내가 ID를 갖고 있다면 가치를 얻을 수 있습니다 ...).

루프를 사용하여 ul/il에서 입력 ID/값을 얻으려면 어떻게해야합니까?

답변

1

아무도 firstChild가 입력됩니다 말을하지 않습니다. 사실, 텍스트 노드 일 가능성이 큽니다.

function Test() { 
    var unorderedList = document.getElementById('myList'), 
     ListItems  = unorderedList.getElementsByTagName('li'); 

    for (var input, i = 0; i < ListItems.length; i++) { 
     input = ListItems[i].getElementsByTagName('input')[0]; 
     console.log(input.id, input.value); 
    } 
} 

Code Example

0

getAttribute를 사용하여 ID를 가져올 수 있습니다. 그래서 :

listID = ListItems[i].firstChild.getAttribute('id'); 
0

당신은 단지 직접 입력을 얻을 수 :

그것을 시도주십시오.

http://jsfiddle.net/ysL5B/

function Test(){ 
    var unorderedList = document.getElementById('myList'); 
    var ListItems = unorderedList.getElementsByTagName('input'); 

    for (var i = 0; i < ListItems.length; i++) { 
     console.log(ListItems[i].id); 
     console.log(ListItems[i].value); 
    } 
} 
: 당신의 예에서 첫 번째 LIS를 얻을 수있는 이유가 거기에 표시되지 않습니다
관련 문제