HTML标签“FOR”只能引用“ID”?

时间:2012-05-21 06:24:48

标签: html jquery-ui

好的,我有一个像这样的Html元素

<input type="button" id="harhar"/><label for="harhar">Im only for Id</label>

我可以将标签引用到不使用id但是类的元素吗?喜欢这个

<input type="button" class="harhar"/><label for="harhar">Refer me as a class</label>

这可能吗?

注意:这是为了在服务器端创建动态Jquery UI按钮,这就是我希望它引用类的原因

4 个答案:

答案 0 :(得分:2)

不,标签总是引用ID,因为只需要ID在文档中是唯一的,这正是标签所需要的。

您将不得不回退创建具有可预测(如果是动态)ID的按钮。

答案 1 :(得分:2)

根据html specification,您必须使用for属性中的元素ID。 但是,规范还指出

  

当[for attribute is]不存在时,正在定义的标签与元素的内容相关联。

因此,您可以通过重新安排html代码将标签与输入相关联。

答案 2 :(得分:2)

不,不可能将一个类和一个匹配。但是,您可以采取一些措施来确保您的id和for与其他for和id属性有明显区别。

在服务器端生成元素时,使用for循环或其他循环结构来枚举您的id / for attributes。

<input type="button" id="harhar_1"/><label for="harhar_1">Im only for Id</label>
<input type="button" id="harhar_2"/><label for="harhar_2">Im only for Id</label>
<input type="button" id="harhar_3"/><label for="harhar_3">Im only for Id</label>

如果您可以生成HTML,那么您仍然可以在使用唯一ID时匹配您的标签和值。

此外,没有什么可以阻止您仍然为所有元素应用公共类名,以便您仍然可以使用CSS或选择器轻松引用它们:

<input class="harhar" type="button" id="harhar_1"/><label for="harhar_1">Im only for Id</label>
<input class="harhar" type="button" id="harhar_2"/><label for="harhar_2">Im only for Id</label>
<input class="harhar" type="button" id="harhar_3"/><label for="harhar_3">Im only for Id</label>

这为您提供了编写简洁的CSS规则或快速轻松地操作DOM所需的钩子。

答案 3 :(得分:1)

根据规格标签必须匹配ID。

解决方法是使标签包装其所针对的元素。虽然它不适用于屏幕阅读器等(您可以使用与输入元素的title属性相同的文本)。

<label><input type="button" title="I am the same label" />
     I know change how this's styled...</label>