我有一个像这样的元素表:
<tr id="elementId">
<img name="img" src=""/><br/>
<input name="text" type="text"/><br/>
<input name="button" type="button"/><br/>
</tr>
除了id之外,每个元素都完全相同。 我尝试使用javascript更新元素,但我不知道如何通过名称获取子节点。
我的代码:
//get element
var element = list.rows[i];
//update nodes
element.getElementByName("img")[0].src = someImg;
element.getElementByName("text")[0].value = someText;
element.getElementByName("button")[0].value = someOtherText;
代码不起作用,因为element
没有函数getElementByName
。
还有其他方法可以通过名字获取节点吗?
答案 0 :(得分:4)
element.querySelector('[name="thename"]')
或element.querySelectorAll('[name=2thename"]')
答案 1 :(得分:3)
该功能为getElementsByName
。元素是复数。
请注意,它会返回一个类似于数组的HTML集合,因此您还需要从中获取第一个项目(使用[0]
)。
此外,您可能会发现您的元素实际上并不在表格行中,因为您缺少表格单元格。验证您的标记:http://validator.w3.org/nu/
答案 2 :(得分:0)
为了在整个文档中选择所有带有标记名的alement,您可以使用
listElements = document.getElementsByTagName();
在某个元素中,您可以使用
selectedElement = element.getElementsByTagName();
请注意,此函数返回一个包含所选元素的数组。如果只有一个元素,它将在
中listElements[0]
在第一种情况下,或
selectedElement[0]
在第二个。