1

我正在尝试创建一个通用 JS 来从输入中获取 id 和 value。然后,将它们放入 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>

我可以获取列表项的数据,

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 回答