【发布时间】:2015-01-25 14:01:35
【问题描述】:
我尝试使用 jQuery 选择器选择 JSF 组件。复合组件 .xhtml 和 .js 相关代码是分开的,所以我在变量中传递cc.cliendId 如下:
var variables = {};
variables.formid = "#{cc.clientId}";
在 *.js 文件中,我尝试按以下方式使用它:$('[id="'+variables.formid+'"]') 它可以工作并返回一个完整的 div,但以下代码不起作用,它返回一个空对象[]:
function escapeColons(selector) {
return selector.replace(/(!|"|#|\$|%|\'|\(|\)|\*|\+|\,|\.|\/|\:|\;|\?|@)/g, function($1, $2) {
return "\\\\" + $2;
});
}
$("#" + escapeColons(variables.formid))
转义冒号的函数取自这个答案:https://stackoverflow.com/a/4792023/947111
如果我写 $("#" + "form\\:range_chooser"),range_chooser 是我的复合组件的 id,它可以工作。
【问题讨论】:
-
那么返回:
escapeColons(variables.formid)? -
form\\:range_chooser作为字符串 -
尝试在没有
var的情况下声明variables。我看不到你的 JS 作用域的全貌....
标签: jquery jsf composite-component