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

Javascript 用转义反斜杠替换任何(.)句点,以便我可以选择元素,javascript,jquery,Javascript,Jquery,我有一些元素中有(.)句点,我需要选择它们,但我需要一些转义字符,我相信这样做。我如何确保可能包含句点的字符串将正确转义。我想是这样的吧 var title = "User1.Title"; var string = //replace any periods with escape sequence? $('#'+string).show(); 它可能有不止一个(.)句点,希望没有,但如果我能替换所有(.)句点,这样我就能做我的选择,那就太好了。你是说这个吗 $('#'+string.rep

我有一些元素中有(.)句点,我需要选择它们,但我需要一些转义字符,我相信这样做。我如何确保可能包含句点的字符串将正确转义。我想是这样的吧

var title = "User1.Title";
var string = //replace any periods with escape sequence?
$('#'+string).show();
它可能有不止一个(.)句点,希望没有,但如果我能替换所有(.)句点,这样我就能做我的选择,那就太好了。

你是说这个吗

$('#'+string.replace(/\./g, "\\.")).show();
这项工作:

$("[id='"+string+"']").show()
如果将其指定为属性,则无需对其进行转义——jquery以不同的方式解析它。

您可以这样做

$("[id="+string+"]").show();
$('#'+string.replace(".", "\\.")).show();
…但这家伙的问题是速度不是很快,因为它会遍历整个DOM树,查找每个具有该id的家伙,而不仅仅是一个

你也可以这样做

$("[id="+string+"]").show();
$('#'+string.replace(".", "\\.")).show();
。。该jQuery将预解析该选择器,并在幕后使用document.getElementById

你也可以这样做

$(document.getElementById(string)).show();
。。。它有同样的效果,你不必担心CSS特殊字符。
只要小心IE(6和7),Opera wich不仅根据ID而且根据名称选择元素。

你很接近,@duckyflip,但这不仅仅是因为它是一个ID。jquery以不同的方式解析任何属性的字符串。您忘记了字符串周围的引号。
string.replace(“.”,“\\”)
仅替换字符串中的第一个句点。要替换所有代码,请使用
s.replace(/\./g,“\\”)
。然后像“User1.Title.Subtitle”这样的东西也会起作用。我发现这里的第一个解决方案对我很有效。n使用jQuery调整css属性时,转义和替换的组合不起作用。