[英]Cannot retrieve an li or ul using getElementById in JavaScript
I can get an HTML object using JavaScript using the function document.getElementById('id'). 我可以使用JavaScript使用函数document.getElementById('id')获得HTML对象。 If I get a form, then I can further specify an element in the form by doing something like the following:
如果获得表单,则可以通过执行以下操作来进一步指定表单中的元素:
document.getElementById('form_id').form_element.value="hello world";
This works if the elements in the form are inputs and text areas. 如果表单中的元素是输入和文本区域,则此方法有效。 (I haven't tried them all...) However, this doesn't work for unordered lists or list elements.
(我还没有尝试过所有方法...)但是,这不适用于无序列表或列表元素。 I can't specify an li element once I get an element using a form.
一旦使用表单获取元素,就无法指定li元素。 Does anyone know why that is?
有人知道为什么吗? Also, the unordered list is used across different forms, so I can't give it a unique id.
另外,无序列表用于不同的形式,所以我不能给它一个唯一的ID。 (Unless I copy paste code everywhere...)
(除非我将粘贴代码复制到各处...)
You can run .getElementsByTagName('ul')
on any DOM element. 您可以在任何DOM元素上运行
.getElementsByTagName('ul')
。 For example, using the following HTML: 例如,使用以下HTML:
<form id="form_id">
<input name="form_element"/>
<ul>
<li>foo</li>
<li>bar</li>
</ul>
</form>
Do this: 做这个:
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 here: http://jsfiddle.net/YSpVg/1/ jsFiddle在这里: http : //jsfiddle.net/YSpVg/1/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.