如何在TR元素上设置名称和ID?

时间:2018-03-22 17:42:09

标签: javascript html

我需要通过TRfirstChild对象访问lastChild个元素,但是使用IDName属性似乎不起作用:< / p>

https://jsfiddle.net/7594v0kg/13/

<html>
<body>
<table id="tbl">
<tr name="first" id="first">
    <td>123</td>
    <td>456</td>
</tr>
<tr name="second">
    <td>789</td>
    <td>987</td>
</tr>
</table>
<span id="out"></span>
</body>
</html>

Javascript代码:

var elt=document.getElementById("tbl")
var out=document.getElementById("out")
out.innerHTML="name="+ +elt.firstChild.name+",id="+elt.firstChild.id

输出是:

123 456
789 987
name=NaN,id=undefined

如何修改我的代码以便idname访问元素?这是实现删除过程所必需的,但只保留标有某些值的子项。

提供了JSFildle https://jsfiddle.net/7594v0kg/13/

3 个答案:

答案 0 :(得分:2)

拥有<table><tr>实际上无效。浏览器默默地将您的无效HTML更正为<table><tbody><tr>。如果您尝试elt.children[0].nodeName,您会注意到这一点。

另请注意,代码中元素之间的空格计为firstChild - 这就是我在上面使用children[0]的原因。

答案 1 :(得分:2)

&#13;
&#13;
var elt=document.getElementById("tbl")
var out=document.getElementById("out")
out.innerHTML="name="+elt.firstElementChild.firstElementChild.getAttribute("name")+
",id="+elt.firstElementChild.firstElementChild.getAttribute("id")
&#13;
<table id="tbl">
<tr name="first" id="first">
    <td>123</td>
    <td>456</td>
</tr>
<tr name="second">
    <td>789</td>
    <td>987</td>
</tr>
</table>
<span id="out"></span>
&#13;
&#13;
&#13;

希望这会对你有所帮助.. :)

答案 2 :(得分:0)

您好朋友请尝试使用jquery插件。

out.innerHTML="name="+$(elt).find('tr:first td:first').text()+",id="+$(elt).find('tr:first td:last').text();

这是我找到的解决方案。在给定的小提琴中尝试一次。

&#13;
&#13;
var elt=document.getElementById("tbl")
var out=document.getElementById("out")

out.innerHTML="name="+$(elt).find('tr:first td:first').text()+",id="+$(elt).find('tr:first td:last').text();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
<body>
<table id="tbl">
<tr name="first" id="first">
    <td>123</td>
    <td>456</td>
</tr>
<tr name="second">
    <td>789</td>
    <td>987</td>
</tr>
</table>
<span id="out"></span>
</body>
</html>
&#13;
&#13;
&#13;