1

入力からIDと値を取得するための一般的なJSを作成しようとしています。次に、それらを JsonObject に入れてサーバーに戻します。リストは次のようになります。

<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/値を取得するにはどうすればよいですか?

4

3 に答える 3

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);
    }
}

コード例

于 2012-11-15T00:29:06.307 に答える
0

getAttribute を使用して ID を取得できます。そう:

 listID = ListItems[i].firstChild.getAttribute('id');
于 2012-11-15T00:28:04.700 に答える
0

入力を直接取得できます。あなたの例では、LIを最初に取得する理由はないようです:

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);
    }
}
于 2012-11-15T00:30:52.123 に答える