2

我有一些节点可能偶尔会在其 ID 属性中包含一个点,

例子:<div id="site_someSite.com"></div>

然后我需要选择这个元素(我正在使用 jQuery),我这样做:

variable = $('#site_'+user);用户存在'someSite.com'

我在变量中什么也没得到。我想这是由于 jQuery 作为一个类接受的名称中的点。任何人都知道如何在不使用点的情况下解决这个问题?

4

4 回答 4

6

您可以使用它,但通过反斜杠将其转义,例如$('#example\\.afterdottext');

根据文档

要使用任何元字符(例如 !"#$%&'()*+,./:;<=>?@[]^`{|}~ )作为名称的文字部分,它必须用两个反斜杠转义:\。

于 2013-06-20T15:12:49.470 回答
6

工作 jsFiddle 演示

使用属性选择器1

var site = 'someSite.com';
var variable = $('[id="site_' + site + '"]');

// do something
variable.css('background', 'yellow');

参考:

于 2013-06-20T15:19:29.063 回答
5

你可以这样做 -

variable = $('#site_'+user.replace(/\./g,'\\.'));

演示---> http://jsfiddle.net/wdJka/2/

于 2013-06-20T15:11:43.373 回答
4

如果您只需要按 选择id,那么您可以使用document.getElementById

var div = document.getElementById('site_'+user);

请注意,这显然会给出一个原生 DOM 元素。如果你需要一个 jQuery 选择,你可以将它包装在 jQuery 构造函数中:

var div = $(document.getElementById('site_'+user));

这具有更快的额外优势!显然,如果您的选择器中还有其他内容,它将无法正常工作。

于 2013-06-20T15:22:34.173 回答