无法从托管bean jsf2 primefaces接受jquery选择器
我想从托管bean执行jquery,但在选择器中遇到了以下问题:无法从托管bean jsf2 primefaces接受jquery选择器,jquery,jsf-2,jquery-selectors,primefaces,managed-bean,Jquery,Jsf 2,Jquery Selectors,Primefaces,Managed Bean,我想从托管bean执行jquery,但在选择器中遇到了以下问题: Uncaught Error: Syntax error, unrecognized expression: unsupported pseudo: lesarticles 以下是托管bean代码: RequestContext.getCurrentInstance().execute("$('#tabView\\:lesarticles').children().find('table tbody tr td div').c
Uncaught Error: Syntax error, unrecognized expression: unsupported pseudo: lesarticles
以下是托管bean代码:
RequestContext.getCurrentInstance().execute("$('#tabView\\:lesarticles').children().find('table tbody tr td div').css('display', 'none');");
这是组件树
<p:tabView id="tabView">
<p:tab>
<p:datatable id="lesarticles">......
我也有错误
我如何解决这个问题
谢谢为了最大限度地减少转义问题,请执行以下操作
RequestContext.getCurrentInstance().execute("easyNameFunc();");
在你的js中创建
function easyNameFunc(){
$('#tabView\\:lesarticles').children().find('table tbody tr td div').css('display', 'none');
}
这样,您可以更好地进行调试,并减少陷阱,以便正确地转义id中的冒号(对于jQuery选择器),这对我来说需要4个反斜杠。我为此挣扎了好几个小时,也许这会帮助其他人。如果您查看Firebug中实际发送到浏览器的内容,两个反斜杠将变成一个,您将得到错误
更改: 致: 这至少会让你克服错误
function easyNameFunc(){
$('#tabView\\:lesarticles').children().find('table tbody tr td div').css('display', 'none');
}
RequestContext.getCurrentInstance().execute("$('#tabView\\:lesarticles').children().find('table tbody tr td div').css('display', 'none');");
RequestContext.getCurrentInstance().execute("$('#tabView\\\\:lesarticles').children().find('table tbody tr td div').css('display', 'none');");