无法使用JavaScript中的getElementById检索li或ul

时间:2013-07-03 01:36:51

标签: javascript html getelementbyid

我可以使用函数document.getElementById('id')使用JavaScript获取HTML对象。如果我得到一个表单,那么我可以通过执行以下操作来进一步指定表单中的元素:

document.getElementById('form_id').form_element.value="hello world";

如果表单中的元素是输入和文本区域,则此方法有效。 (我还没有尝试过所有...)但是,这对无序列表或列表元素不起作用。一旦我使用表单获取元素,我就无法指定li元素。有谁知道那是为什么?此外,无序列表用于不同的表单,所以我不能给它一个唯一的ID。 (除非我在任何地方复制粘贴代码......)

1 个答案:

答案 0 :(得分:2)

您可以在任何DOM元素上运行.getElementsByTagName('ul')。例如,使用以下HTML:

<form id="form_id">
    <input name="form_element"/>
    <ul>
        <li>foo</li>
        <li>bar</li>
    </ul>
</form>

这样做:

var form = document.getElementById('form_id');
form.form_element.value = 'hello world';

var ul = form.getElementsByTagName('ul');
ul = ul && ul[0];
console.log(ul);

var lis = form.getElementsByTagName('li');
for (var i = 0; i < lis.length; i++) {
    console.log(lis[i].innerText);
}

jsFiddle这里:http://jsfiddle.net/YSpVg/1/