Javascript 如何在html中隐藏标签

Javascript 如何在html中隐藏标签,javascript,html,Javascript,Html,我有一段代码,它依赖于动态驱动器中的javascript: 它是一个表单依赖关系管理器。将根据您从显示的表单中选择的内容显示或隐藏元素: 我不知道为什么,但如果我改变代码: <td> <label>ID Number<input type="checkbox" name="id" class="DEPENDS ON info BEING student"></label> </td>

我有一段代码,它依赖于动态驱动器中的javascript: 它是一个表单依赖关系管理器。将根据您从显示的表单中选择的内容显示或隐藏元素:

我不知道为什么,但如果我改变代码:

<td>
       <label>ID Number<input type="checkbox" name="id" class="DEPENDS ON info BEING student"></label>
           </td>
        </tr>

身份证号码
为此:

    <td>
    <input type="checkbox" name="id" class="DEPENDS ON info BEING student"><label>ID Number</label>
       </td>
    </tr>

身份证号码
注意:我在这里做的唯一更改是将标签从复选框的左侧转移到右侧,以便它们看起来更好。 但当我这么做的时候。即使我还没有单击使其可见的按钮(但没有复选框),标签也将可见

当我点击这个按钮时,这是唯一一次复选框出现在标签的左侧

复选框正常,但标签不正常。javascript工作正常。
我该怎么做才能使复选框和标签一起使用?

class=“dependens depens info BEING student”
添加到
我认为最简单的解决方案是将
标记放在
标记前面,然后将文本移到其右侧:

<td>
<label><input type="checkbox" name="id" class="DEPENDS ON info BEING student">ID Number</label>
   </td>
</tr>

看起来表单依赖项脚本希望表单中包含HTML

<label>ID Number<input type="checkbox" name="id" class="DEPENDS ON info BEING student"></label>
在FormManager.js中,将其添加到
showEl()
hideEl()
(在
setupDependencies()
中)的末尾:

var id=this.id,labels=document.getElementsByTagName('label'),l=labels.length,label,i;
对于(i=0;i
它应该可以工作。

根据为输入指定标签,您必须遵循本说明

 <FORM action="..." method="post">
 <P>
      <LABEL>
         First Name
         <INPUT type="text" name="firstname">
      </LABEL>
      <LABEL>
         <INPUT type="text" name="lastname">
         Last Name
      </LABEL>
 </P>
 </FORM>

名字 姓

该条包括以下案文:

要隐式地将标签与另一个控件关联,控件元素必须位于label元素的内容内。在这种情况下,标签只能包含一个控件元素。标签本身可以放置在相关控件之前或之后

请注意,当一个表格用于布局时,标签在一个单元格中,其关联控件在另一个单元格中,不能使用此技术

当标签元素接收到焦点时,它将焦点传递给其关联的控件。有关示例,请参见下面关于访问键的部分

标签可由用户代理以多种方式呈现(例如,视觉、语音合成器读取等)


因此,您必须遵循说明,说明是否清楚?

需要澄清您的示例。看起来您做的不仅仅是“将标签从复选框的左侧转移到右侧”。这只是一个示例,我编辑了它。这实际上不会将标签与复选框关联,因此单击标签也会切换复选框。@trey:显然,也应该正确使用
for
属性。但是,这并不能回答问题。我使用时仍然可以看到标签ID号this@user225269当前位置将SLaks答案合并到我的解决方案中应该可以解决这个问题。我认为我刚才添加的解决方案更简单,也应该有效。我认为这是解决这个问题的最简单的解决方案,谢谢
<input type="checkbox" id="id" "name="id" class="DEPENDS ON info BEING student"><label for="id">ID Number</label>
var id = this.id, labels = document.getElementsByTagName('label'), l = labels.length, label, i;
for (i = 0; i < l; i++) {
    label = labels[i];
    if (label.htmlFor == id) {
        label.style.display = 'none'; // 'none' for hideEl, '' for showEl
    }
}
 <FORM action="..." method="post">
 <P>
      <LABEL>
         First Name
         <INPUT type="text" name="firstname">
      </LABEL>
      <LABEL>
         <INPUT type="text" name="lastname">
         Last Name
      </LABEL>
 </P>
 </FORM>