我有一个复杂的html-Form,我正在使用jQ进行一些工作。并且花了今天下午的最佳时间试图理解我能够追溯到jQuery无法找到现有控件的问题。
命令$("#FormView1_CopaBOM973row%18%_dkF").width();
返回null。
首先我考虑了width()中的错误 - 实现并尝试$("#FormView1_CopaBOM973row%18%_dkF").attr("id");
- 它没有返回任何内容,其长度为0。
我在Firefox 3.5.5中这样做,使用了Firebug的DOM-Explorer来验证那里的东西。最后,最终的测试工作:$(document.getElementById("FormView1_CopaBOM973row%18%_dkF")).attr("id")
返回了预期的结果。
所以,我唯一的想法是任何“可疑”角色都需要逃避,但是文档没有提到下划线或百分比是“可疑的”。那么,哪里是我的错?
请等一下。不要求更多的“代码”,我认为这个问题不再需要......
答案 0 :(得分:2)
正如Matthew所说,ID属性上不允许使用特殊字符。这不是一个jQuery问题。 Here is the complete reference.
答案 1 :(得分:1)
this page底部的特殊字符列表似乎不完整。尝试逃避百分号:
$("#FormView1_CopaBOM973row\\%18\\%_dkF")
答案 2 :(得分:0)
尝试$(“#FormView1_CopaBOM973row%18%_dkF”)[0] .id;
答案 3 :(得分:0)
'%'不是id属性的有效字符,所以jQuery可能不喜欢它。
答案 4 :(得分:0)
逃避百分号似乎有效。
$("#FormView1_CopaBOM973row\\%18\\%_dkF")
答案 5 :(得分:0)
那些百分比%
在CSS选择器中显然是非法的(显然因为我无法在w3 spec中找到它们,或者它必须是未公开的jQuery错误),但是不在HTML中。逃避它们可以完成这项工作:
$("#FormView1_CopaBOM973row\\%18\\%_dkF").width();
答案 6 :(得分:0)
我认为这是因为你身份证中有特殊字符。
尝试:
$("[id=FormView1_CopaBOM973row%18%_dkF]").width();