好的,我有一个像这样的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按钮,这就是我希望它引用类的原因
答案 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>