如何将禁用类添加到单个选择中,而不是我拥有的全部

时间:2019-05-03 11:17:38

标签: javascript jquery

我想将一个禁用的类放入我的选择中,但是当我这样做时:

$("input").attr("disabled",true);

//I tried to to this but it didn't work too:

$("#myId").attr("disabled",true);

它会禁用我所有的选择,而不是一个。 如何仅禁用“ myId”?

2 个答案:

答案 0 :(得分:0)

没有看到您的HTML(在撰写本文时尚未提供),我们很难告诉您它为什么不起作用。

但是,如果$("#myId").attr("disabled",true);无法正常工作,那么它向我表明您的HTML中没有id='myId'元素。

要检查渲染的HTML 的内容(如浏览器所示,而不是您的代码)...

  • 是否存在idmyId的元素
  • 例如,id就是myId,而不是myID(视情况而定)
  • 您是否正在使用ASP.Net之类的名称容器,其中命名容器可能会将呈现控件的id更改为ctl00_myId之类
  • 您是否有2个元素,其idmyId ...在这种情况下,这是无效的HTML,因为每个元素必须具有唯一的id,并且会导致jQuery仅在第一项上设置disabled

答案 1 :(得分:0)

由于$("input").attr("disabled",true);将禁用的属性添加到所有输入元素,因此全部禁用了它们。在看不到HTML的情况下,当您尝试使用#myId

时,很难说出不禁用的原因是什么

这是我过去因类似问题犯的一些错误:

1)我实际上以为我没有的元素上有id。无论是拼写错误,大小写差异还是下划线还是破折号...问题的关键是我试图在页面上引用的id与我在jQuery中寻找的那个都不匹配

2)我将其称为id,但实际上它是class,反之亦然。 .(代表课程)和#(代表id)是第二天性,但是有时候,如果您累了或精疲力尽,那么很容易犯这个错误

3)我给出了一个存在于多个元素中的id。根据惯例,id应该是唯一的。重复的ID会产生意外的行为

希望这些简单原因之一是造成问题的原因,您可以迅速解决。也许要休息30分钟,然后再返回。