Javascript 无法使用父项';获取隐藏字段值;s类名称

Javascript 无法使用父项';获取隐藏字段值;s类名称,javascript,jquery,html,Javascript,Jquery,Html,我的html代码是- <tr class="selected"> <td id="participantID">XXXXX1234</td> <input type="hidden" value="000001234" id="taxID"> <td id="fullName">Y, X</td> </tr> Alert语句显示未定义的值。我是不是错过了什么 您需要有一个表作为tr的父级,然后DOM查找将正常工

我的html代码是-

<tr class="selected">
<td id="participantID">XXXXX1234</td>
<input type="hidden" value="000001234" id="taxID">
<td id="fullName">Y, X</td>
</tr>

Alert语句显示未定义的值。我是不是错过了什么

您需要有一个
作为
tr
的父级,然后DOM查找将正常工作。另外,正如@Rory McCrossan所指出的,您需要在
输入
元素周围包装
td
标记:

var x=document.getElementsByClassName(“选定”)[0];
变量y=x.getElementsByTagName(“输入”)[0];
警报(y值)

XXXXX 1234
Y、 X

您需要有一个
作为
tr
的父级,然后DOM查找将正常工作。另外,正如@Rory McCrossan所指出的,您需要在
输入
元素周围包装
td
标记:

var x=document.getElementsByClassName(“选定”)[0];
变量y=x.getElementsByTagName(“输入”)[0];
警报(y值)

XXXXX 1234
Y、 X

首先,文档中不能有多个id值相同的元素。这将不得不改变,仅此一点就可以解决你的问题

第二,你的HTML是无效的。
输入必须位于
td
的内部

其次,当您只查找一个元素时,没有理由使用
getElementsByCassName()
getElementsByTagName()
——这是浪费,因为当您只对一个项目感兴趣时,就会搜索整个文档

此外,这两种方法都返回“活动”节点列表,每次引用它们的结果时都需要重新扫描整个文档。这方面的用例是有限的

如果您只想基于任何有效的CSS选择器查找一个项目,请使用;如果您想查找一组匹配的元素,请使用

假设这些问题得到纠正,您可以这样做:

var x=document.querySelector(“.selected td input[type=hidden]”);
警报(x值)

XXXXX 1234
Y、 X

首先,文档中不能有多个id值相同的元素。这将不得不改变,仅此一点就可以解决你的问题

第二,你的HTML是无效的。
输入必须位于
td
的内部

其次,当您只查找一个元素时,没有理由使用
getElementsByCassName()
getElementsByTagName()
——这是浪费,因为当您只对一个项目感兴趣时,就会搜索整个文档

此外,这两种方法都返回“活动”节点列表,每次引用它们的结果时都需要重新扫描整个文档。这方面的用例是有限的

如果您只想基于任何有效的CSS选择器查找一个项目,请使用;如果您想查找一组匹配的元素,请使用

假设这些问题得到纠正,您可以这样做:

var x=document.querySelector(“.selected td input[type=hidden]”);
警报(x值)

XXXXX 1234
Y、 X
(代表OP发布解决方案)

删除隐藏字段的ID后,它工作正常。编辑的代码是:

<tr class="selected">
<td id="participantID">XXXXX1234</td>
<input type="hidden" value="000001234" id="taxID">
<td id="fullName">Y, X</td>
</tr>

XXXXX 1234
Y、 X
(代表OP发布解决方案)

删除隐藏字段的ID后,它工作正常。编辑的代码是:

<tr class="selected">
<td id="participantID">XXXXX1234</td>
<input type="hidden" value="000001234" id="taxID">
<td id="fullName">Y, X</td>
</tr>

XXXXX 1234
Y、 X


“有多行可以包含与“taxID”具有相同ID的隐藏字段”-ID需要唯一您的HTML也无效。
输入
不能是
tr的子项
ID的第一个必须是唯一的。使用选择器,如
$(.selected”).find(“输入:隐藏”)
感谢大家的快速响应。我将删除该id。但如何使用类名获取隐藏字段值?@Nitesh在任何人给您提供知情答案之前,您需要先修复HTML。如果您有多个此类输入,它们可以共享一个类名并具有唯一id。完成此操作后,请发布更新对于您的问题,有人会给您一个更好的答案。“有多行可以包含与“taxID”ID相同的隐藏字段”--ID需要唯一您的HTML也是无效的。
输入
不能是
tr
的子项,ID的第一个应该是唯一的。使用类似于
$(“.selected”)的选择器。查找(“输入:hidden')
感谢大家的快速响应。我将删除该id。但如何使用类名获取该隐藏字段值?@Nitesh在任何人给你一个知情的答案之前,你需要先修复你的HTML。如果您有多个该类型的输入,它们可以共享一个类名并具有唯一的ID。一旦你这样做,请发布一个更新你的问题,有人会给你一个更好的答案。它现在正在工作后,删除隐藏字段的ID。谢谢您宝贵的时间,先生。@Nitesh不客气。但别忘了纠正我提到的其他问题,也别忘了将其标记为“答案”。在阅读您的解决方案之前,它是有效的。但在阅读了你的上述评论后,我尝试了你的解决方案。干得好,先生。我根据你的建议做了一些改变。我在标记中添加了输入字段。你的回答真的很有帮助。我不知道GetElementsByCassName()和getElementsByTagName()。非常感谢您分享您的知识,先生。@Nitesh再次欢迎您。在web开发中,区分“工作”和“正确”是很重要的。有很多代码可以在一个或多个浏览器中“工作”,但这并不意味着它是“正确的”,可以在所有浏览器中工作或高效工作。遵循标准(使用有效代码)并理解语言/API的基本原理将大有帮助。在删除隐藏字段的ID后,它现在可以工作了。谢谢您宝贵的时间,先生。@Nites