用转义反斜杠替换任何(。)句点,以便我可以选择元素

时间:2009-05-22 12:05:57

标签: javascript jquery

我有一些带有(。)句点的元素,我需要选择它们但是我需要一些转义字符才能这样做我相信。我怎么能确定我的字符串可能有一段句子将被正确转义。我猜是这样的吗?

var title = "User1.Title";
var string = //replace any periods with escape sequence?
$('#'+string).show();

它可能有多个(。)期间,希望不是,但如果我可以替换所有(。)期间,那么我可以做出我认为很棒的选择。

3 个答案:

答案 0 :(得分:6)

你是说这个吗?

$('#'+string.replace(/\./g, "\\.")).show();

答案 1 :(得分:3)

你可以这样做......

$("[id="+string+"]").show();

...但是这个家伙的问题是它不是那么快,因为它将遍历整个DOM树,寻找具有该id的每个人,而不仅仅是一个。

你也可以这样做......

$('#'+string.replace(".", "\\.")).show();

.. jQuery将预先解析该选择器并在幕后使用 document.getElementById

您也可以这样做

$(document.getElementById(string)).show();

...同样的效果,你不必担心CSS特殊字符。 小心IE(6和7),Opera不仅要通过它的ID来选择元素,还要选择它的名字。

答案 2 :(得分:1)

这有效:

$("[id='"+string+"']").show()

如果将其指定为属性,则无需转义它 - jquery以不同方式解析它。