按名称获取嵌套元素

时间:2015-08-06 14:41:17

标签: javascript

我有一个像这样的元素表:

<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

还有其他方法可以通过名字获取节点吗?

3 个答案:

答案 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]

在第二个。