如何在jquery中选择id包含点符号的元素?

时间:2013-06-13 09:09:51

标签: jquery

我知道也许你认为这是重复的话题,但不是;我尝试了这些其他推荐方式,但它对我不起作用。

我有一个这样的变量:

var $id = "test.1";

如果我尝试使用以下行,它就可以了:

$("#test\\.1")

但如果我尝试使用$('#'+'test\\.1'),则无效。

你能告诉我为什么以及如何处理它?<​​/ p>

更新: 对不起,有人继续编辑这个问题。我将尽力避免接下来的问题。

所以,这是我的问题: http://jsfiddle.net/HzfLN/8/

我用过:

var id = "text.1".replace(/[.]/gi, "\\\\");
$('#'+id).bind("click", function(){
   //Do my stuff
});

我尝试使用4斜杠“\\”而不是“\”。所以我修好了。

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

第一个示例中的引号不匹配。这根本行不通。你需要改变:

$('#test\\.1")

要:

$('#test\\.1') /* or */
$("#test\\.1")

至于你的另一个例子。您目前拥有的works fine

$('#test\\.1')
$('#' + 'test\\.1')

答案 1 :(得分:1)

使用两个反斜杠来逃避这段时间:

$('#test\\.1');

Demo

来自jQuery docs

  

使用任何元字符(例如!“#$%&amp;'()* +,。/:;&lt; =&gt;?@ [] ^`{|}〜)作为文字作为名称的一部分,必须使用两个反斜杠进行转义:\。例​​如,id =“foo.bar”的元素可以使用选择器$(“#foo \ .bar”)。

答案 2 :(得分:0)

作为解决方法,您可以使用:

$('[id="test.1"]')

http://jsfiddle.net/uWKXJ/