JQuery组件id包含[]

时间:2010-06-10 11:17:02

标签: jquery

我可以选择带有id的组件,其中包含[]符号吗?

例如:

<div id=divtables[COURSE_SUBJECTS][141][TITLE]>gg</div>

TNX。

4 个答案:

答案 0 :(得分:2)

根据W3C,这不是有效的ID:

  

命名规则:

     

必须以字母A-Z或a-z

开头      

可以跟着:字母(A-Za-z),   数字(0-9),连字符(“ - ”),   下划线(“_”),冒号(“:”)和   句号(“。”)

     

值区分大小写

这基本上说你不应该在id中有[]。我强烈建议你遵循标准。

答案 1 :(得分:2)

根据w3c standards,您不能在HTML中使用[]作为ID属性。 这意味着您只能将以下字符用于ID属性。

 Letters ([A-Za-z])
 digits ([0-9])
 hyphens ("-")
 underscores ("_")
 colons (":")
 periods (".").

答案 2 :(得分:1)

[]符号不是有效的ID字符。如果你想尝试一下,请使用双反斜杠:

$("#divtables\\[COURSE_SUBJECTS\\]")

答案 3 :(得分:0)

你只需要逃避它们,就像这样:

$("#divtables\\[COURSE_SUBJECTS\\]\\[141\\]\\[TITLE\\]")

There's a full FAQ/how-to on the escaping topic here,这适用于任何选择器类型,但您应该可以使用不同的ID值(主要不会导致无效的HTML)。我知道情况并非总是这样,例如由另一个系统生成的内容,上面的解决方案为此工作,但这不是最佳解决方案,更换任何无效字符最好,我建议:

<div id="divtables-COURSE_SUBJECTS-141-TITLE">gg</div>

然后你的选择器不需要任何技巧,它只是:

$("#divtables-COURSE_SUBJECTS-141-TITLE")