我有一些带有(。)句点的元素,我需要选择它们但是我需要一些转义字符才能这样做我相信。我怎么能确定我的字符串可能有一段句子将被正确转义。我猜是这样的吗?
var title = "User1.Title";
var string = //replace any periods with escape sequence?
$('#'+string).show();
它可能有多个(。)期间,希望不是,但如果我可以替换所有(。)期间,那么我可以做出我认为很棒的选择。
答案 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以不同方式解析它。