jquery - 如何逃脱 ":"?

标签 jquery jsf escaping seam

例如我的 id 是这样的

someform:somepanel:somebutton

当我执行 jQuery("#someform:somepanel:somebutton") 时,它返回某种形式,如何自动转义该 id?

编辑:

我想做这样的事情

jQuery(somefunction("#someform:somepanel:somebutton"))

最佳答案

如果只是这个非常专业的版本,您只需 .replace() 字符即可。

function somefunction(selector) {
    return selector.replace(/:/, '\\\\:');
}

jQuery(somefunction("#someform:somepanel:somebutton"))

然后转换为

jQuery("#someform\\:somepanel\\:somebutton");

要获得更通用的版本,您可以使用正则表达式:

function somefunction(selector) {
    return selector.replace(/(!|"|#|\$|%|\'|\(|\)|\*|\+|\,|\.|\/|\:|\;|\?|@)/g, function($1, $2) {
        return "\\\\" + $2;
    });
}

关于jquery - 如何逃脱 ":"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4791817/

相关文章:

python - 在css选择器beautifulsoup python中转义 "["

python - 如何使用 python re 模块在字符串中自动查找类似 'c++' 的模式?

javascript - 从 json 数组中获取成对的值

javascript - JSON 返回不起作用

javascript - 不使用组件时如何管理与 browserify 的依赖关系?

java - ActiveMQ 消息驱动 bean 到 JSF

java - JSF:h:dataTable 与 h:panelGrid

javascript - unescape 在脏话过滤器中不起作用

javascript - chrome 中超出了最大调用堆栈大小,IE 中堆栈空间不足 (JavaScript)

javascript - JSF 标记上的 onclick 事件