Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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
“HTML标签”;至于;只能参考;ID";?_Html_Jquery Ui - Fatal编程技术网

“HTML标签”;至于;只能参考;ID";?

“HTML标签”;至于;只能参考;ID";?,html,jquery-ui,Html,Jquery Ui,好的,我有一个像这样的Html元素 <input type="button" id="harhar"/><label for="harhar">Im only for Id</label> Im仅用于Id 我是否可以将标签引用到不使用id而是使用类的元素?像这个 <input type="button" class="harhar"/><label for="harhar">Refer me as a class</label

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

<input type="button" id="harhar"/><label for="harhar">Im only for Id</label>
Im仅用于Id
我是否可以将标签引用到不使用id而是使用类的元素?像这个

<input type="button" class="harhar"/><label for="harhar">Refer me as a class</label>
将我称为一个类
这可能吗


注意:这是为了在服务器端创建动态Jquery UI按钮,这就是我希望它引用类的原因。不,标签总是引用ID,因为文档中只要求ID是唯一的,这正是标签所需要的

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

根据,您必须在
for
属性中使用元素id。 然而,该规范还规定:

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


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

不,不可能将类和for匹配在一起。但是,您可以做一些事情来确保您的id和for与其他for和id属性唯一不同

<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>
在服务器端生成元素时,使用for循环或其他一些循环构造来枚举id/for属性

<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>
Im仅用于Id
我只是为了身份证
我只是为了身份证
如果您可以生成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>
Im仅用于Id
我只是为了身份证
我只是为了身份证

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

根据specs标签,必须匹配ID

一种解决方法是使标签环绕其目标元素。但是,它不能与屏幕阅读器等配合使用(您可以使用与输入元素的
title
属性相同的文本)


我知道改变这个样式。。。

在服务器端创建按钮如何防止您向其添加ID?动态元素来自外部源,我无法控制。。。嗯,我所做的是@jmort253-hehe的答案。@Mahan:你可以用某种方式编写代码,这样你就能知道按钮的ID是什么,这应该不是什么大问题。如果您使用的是ASP.NET Webforms,其中为您生成ID,则可以尝试将
ClientID
设置为
static
predictable
,或者访问按钮的
ClientID
属性以作为脚本的引用传递。如果您不使用Webforms,我一开始就不怀疑这是个问题。我创建了一个随机字符串生成器函数,只是为了附加额外的字符。。。呵呵,我可以做这样的事,但不是数字。。。在我的真实代码中,它的后缀是数字