Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我可以使用标签作为标签标签吗?_Javascript_Html - Fatal编程技术网

Javascript 我可以使用标签作为标签标签吗?

Javascript 我可以使用标签作为标签标签吗?,javascript,html,Javascript,Html,通常我使用标签标签来指向这样的输入标签 <label for='firstname'>First Name:</label> <input type='text' id='firstname' /> 名字: 现在我有了这个 <label for='firstname'>First Name:</label> <label id='firstname'></label> 名字: 因为我以前没有穿过这样的东西

通常我使用标签标签来指向这样的输入标签

<label for='firstname'>First Name:</label>
<input type='text' id='firstname' />
名字:
现在我有了这个

<label for='firstname'>First Name:</label>
<label id='firstname'></label>
名字:
因为我以前没有穿过这样的东西,所以可以为
标签
添加
标签
标签吗。当我应用
Javascript
,因为我必须更新这些值时,它会起作用吗?或者这是有效的w3c合规性

我不知道该不该用它

否。标签元素标签(主要)表单控件(
等),而不是任意元素

见:

有些元素(并非所有元素都是相关联的)被归类为可标签元素。这些元素可以与标签元素关联

按钮
输入
(如果类型属性未处于隐藏状态),
按键
仪表
输出
进度
选择
文本区


根据W3C验证程序,它是无效的

label元素的
属性必须引用表单控件


标签对标签不合格。可能就是您想要的?

标签“For”属性必须指向“control”元素的有效ID属性,将有效的控件元素列为 按钮、复选框、单选按钮、菜单、文件选择、隐藏控件、对象控件


它可能在JS中工作,但它将是无效的HTML

,正如其他人回答的那样,
label
元素必须引用控件,例如
input
,因此它不能引用另一个
label
元素,即使在语法上也是如此。这种限制甚至在HTML5中也存在

这意味着,如果您使用控件以外的元素读取用户输入,您仍然可以为它们使用标签,但不能为标签使用
label
标记。通常,最好使用
input type=text
读取名称等文本数据。如果由于某种原因无法使用它或其他控件,那么ARIA规范中推荐的方法是使用语义无关的元素,通常是
span
,并使用ARIA属性指定标签和
span
之间的连接。例如:

<span id=firstnameLabel>First Name:</span>
<span role=textbox id=firstname aria-labelledby=firstnameLabel></span>
名字:

ARIA属性主要用于辅助或其他可访问性感知软件。主流浏览器可能会忽略它们。

你用它测试过吗?也许这就是你感到困惑的原因。您似乎从根本上误解了
标签
元素的用途。您为什么要这样做呢?根据JSFiddle()的说法,它应该可以工作。我也给了第一个标签一个ID,以便Javascripts document可以访问它。getElementById
标签
元素通常用于聚焦元素,通常是
输入
。。。我不知道还有什么其他用途,或者你为什么要把注意力集中在
标签上
?我正在尝试这样的
名字:praveen
我可以像
标签:标签(id='firstname')
那样使用它吗。这样我就可以在JS中使用id来更新值了?您可以使用span元素来代替。就“用JS更新”而言,标签没什么特别的。谢谢你,我用
span
@Quentin。你的span建议帮我省了很多分!谢谢谢谢但是我可以在不使用
属性的情况下使用它吗。像这样的
First Name:praveen
我可以像
label:label(id='firstname')
一样使用它吗。这样我就可以在JS中使用id更新值了?这仍然无效吗?如果您在使用它时未使用
for
属性,如在
First name:
中,您将收到此错误。元素标签不得显示为label元素的后代。。您仍然可以使用它,但不要期望它是有效的HTML。它在大多数浏览器中仍然可以很好地工作(除了那些面向可访问性的浏览器)。+1很好的解释。感谢您建议
span
aria
属性。我的答案的第一个版本在代码示例中有
aria描述;现在固定为
aria labelledby
(如文本所示)。
aria labelledby
对应于控件与其
标签
之间的关系,它是必需的。
aria descripbeby
属性还可用于参考更详细的说明。