1、jquery類庫在我們實際項目中用的很多,大家經常需要根據控件的id,獲取對應的html元素。
但是:當id含有特殊字符的時候,是不能選中的。
2、 自己簡單的測試了下,jquery的id選擇器只支持,單詞、阿拉伯數字、下划線、中划線。
其中單詞,包括英文字母、漢字,但是控件id屬於客戶不可見內容,實際中開發人員是不用漢字作為id的, 這里不考慮。
3、提供以下方法,開人人員只要將id轉義后,jquery就能選中了。不用再考特殊字符的問題
function escapeJquery(srcString) {
// 轉義之后的結果
var escapseResult = srcString;
// javascript正則表達式中的特殊字符
var jsSpecialChars = ["\\", "^", "$", "*", "?", ".", "+", "(", ")", "[",
"]", "|", "{", "}"];
// jquery中的特殊字符,不是正則表達式中的特殊字符
var jquerySpecialChars = ["~", "`", "@", "#", "%", "&", "=", "'", "\"",
":", ";", "<", ">", ",", "/"];
for (var i = 0; i < jsSpecialChars.length; i++) {
escapseResult = escapseResult.replace(new RegExp("\\"
+ jsSpecialChars[i], "g"), "\\"
+ jsSpecialChars[i]);
}
for (var i = 0; i < jquerySpecialChars.length; i++) {
escapseResult = escapseResult.replace(new RegExp(jquerySpecialChars[i],
"g"), "\\" + jquerySpecialChars[i]);
}
return escapseResult;
}
