Par*_*ars 7 javascript jquery escaping
如果jQuery选择器中包含一个ID,则jQuery选择器无法选择.它.
在我的应用程序ID名称中从用户名动态生成.
如何从标记ID中转义任何特殊字符,以便jQuery选择器运行良好?
例如,ID1:This.Is.ID.1
ID2:This.is.Another.ID
谁能帮我.
提前致谢.
Jes*_*röm 15
如果我理解正确,你想修改一个包含句点的字符串,在每个句点前面都有\\,作为jQuery选择器中的id支持.以下是如何做到这一点:
var username = 'some.username.with.dots';
// Replace all periods with \\. to
username = username.replace(/\./g, '\\\\.');
// find element that matches #some\\.username\\.with\\.dots
$('#' + username).doSomethingWithjQuery();
Run Code Online (Sandbox Code Playgroud)
.在正则表达式中表示"任何字符",因此您需要通过放在\前面来逃避它.g正则表达式修饰符意味着贪心,没有它的替换表达式将仅替换所述第一.与\\.编辑
我尝试了我的代码,似乎你需要更改替换值\\\\.以使其成为\\.

acd*_*ior 10
官方jQuery常见问题解答有一个确切的问题:如何通过具有CSS表示法中使用的字符的ID选择元素?它们甚至可以帮助您逃脱.引用它:
...冒号("
:")和句点(".")在jQuery选择器的上下文中是有问题的,因为它们分别表示伪类和类.为了告诉jQuery按字面意思处理这些字符而不是CSS符号,它们必须通过在它们前面放置两个反斜杠来"转义".
// Does not work:
$( "#some:id" )
// Works!
$( "#some\\:id" )
// Does not work:
$( "#some.id" )
// Works!
$( "#some\\.id" )
Run Code Online (Sandbox Code Playgroud)
以下函数负责转义这些字符,并在ID字符串的开头放置一个"#":
function jq( myid ) {
return "#" + myid.replace( /(:|\.|\[|\]|,|=)/g, "\\$1" );
}
Run Code Online (Sandbox Code Playgroud)
该功能可以像这样使用:
$( jq( "some.id" ) )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17418 次 |
| 最近记录: |