jQuery:转义加号登录选择器

时间:2011-05-24 19:14:22

标签: javascript jquery

给出一个dom元素:

<li id="foo+bar"></li>

我想解决那个元素(如果可能的话,使用jQuery)并尝试:

$("#foo+bar")

我也试过逃避它:

$("#foo\+bar")

..但似乎都没有用,因为(我猜)jQuery似乎无法处理加号。不幸的是,我真的没有更改id值的选项,所以:

有没有办法让jQuery获得正确的dom,或者我怎么能解决这个问题?

3 个答案:

答案 0 :(得分:10)

尝试用两个反斜杠转义它。

$("#foo\\+bar")

答案 1 :(得分:6)

嗯,问题可能是+不应该存在。

HTML 4 specification说:

  

ID和NAME令牌必须以字母([A-Za-z])开头,后面可以跟任意数量的字母,数字([0-9]),连字符(“ - ”),下划线(“ _“),冒号(”:“)和句号(”。“)。

因此,任何解决方法仍然基于错误的启动,因此可能随时停止工作。你真的应该改变那个id。

答案 2 :(得分:1)

我不相信+是id中的有效字符。

  

ID和NAME令牌必须以a开头   信([A-Za-z]),可以遵循   任意数量的字母,数字   ([0-9]),连字符(“ - ”),下划线   (“_”),冒号(“:”)和句号   ( “”)。

http://www.w3.org/TR/html401/types.html#type-name