为什么jQuery1.3.2没有通过ID找到现有控件-我做错了什么?

为什么jQuery1.3.2没有通过ID找到现有控件-我做错了什么?,jquery,getelementbyid,Jquery,Getelementbyid,我有一个复杂的html表单,正在使用jQ进行一些工作。今天下午花了大部分时间试图理解一个问题,我可以追溯到jQuery无法找到现有控件的地方。 命令$(“#FormView1_CopaBOM973row%18%_dkF”).width()返回空值。 首先,我考虑了width()实现中的一个错误,并尝试了$(“#FormView1_CopaBOM973row%18%_dkF”).attr(“id”)-未返回任何内容,其长度为0 我在Firefox3.5.5中这样做,我已经使用Firebug的DOM

我有一个复杂的html表单,正在使用jQ进行一些工作。今天下午花了大部分时间试图理解一个问题,我可以追溯到jQuery无法找到现有控件的地方。 命令
$(“#FormView1_CopaBOM973row%18%_dkF”).width()返回空值。
首先,我考虑了width()实现中的一个错误,并尝试了
$(“#FormView1_CopaBOM973row%18%_dkF”).attr(“id”)-未返回任何内容,其长度为0

我在Firefox3.5.5中这样做,我已经使用Firebug的DOM浏览器验证了它的存在。最后,最终的测试成功了:
$(document.getElementById(“FormView1\u CopaBOM973row%18%\u dkF”)。attr(“id”)
返回了预期的结果

所以,我唯一的想法是,任何“可疑”字符都需要转义,但文档没有提到下划线或百分比为“可疑”。那么,我的错在哪里


还有请。不要要求更多的“代码”,我不认为这个问题还需要更多…

试试$(“#FormView1_CopaBOM973row%18%_dkF”)[0]。id

try$(“#formview 1_CopaBOM973row%18%_dkF”)[0].id

“%”不是id属性的有效字符,因此jQuery可能不喜欢这样

“%”不是id属性的有效字符,因此jQuery可能不喜欢这样

避开百分比符号似乎有效

$("#FormView1_CopaBOM973row\\%18\\%_dkF")

摆脱百分比标志似乎是可行的

$("#FormView1_CopaBOM973row\\%18\\%_dkF")

列表底部的特殊字符列表似乎不完整。尝试避开百分比符号:

$("#FormView1_CopaBOM973row\\%18\\%_dkF")

列表底部的特殊字符列表似乎不完整。尝试避开百分比符号:

$("#FormView1_CopaBOM973row\\%18\\%_dkF")

这些百分比
%
在CSS选择器中显然是非法的(显然是因为我在中找不到它们,或者它一定是一个未公开的jQuery错误),但在HTML属性中却不是。不过,逃离它们会起作用:

$("#FormView1_CopaBOM973row\\%18\\%_dkF").width();

这些百分比
%
在CSS选择器中显然是非法的(显然是因为我在中找不到它们,或者它一定是一个未公开的jQuery错误),但在HTML属性中却不是。不过,逃离它们会起作用:

$("#FormView1_CopaBOM973row\\%18\\%_dkF").width();

我想这是因为你的身份证上有特殊的字符

尝试:


我想这是因为你的身份证上有特殊的字符

尝试:


正如Matthew所说,ID属性上不允许使用特殊字符。这不是jQuery的问题

正如Matthew所说,ID属性上不允许使用特殊字符。这不是jQuery的问题

谢谢Josh-这表明我不应该在ID中使用%,我不知道。谢谢Josh-这表明我不应该在ID中使用%,我不知道。