2

マネージド Bean から jquery を実行したいのですが、セレクターに次の問題があります。

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("$('#tabView:lesarticles').children().find('table tbody tr td div').css('display', 'none');");

エラーもあります

どうすればそれを解決できますか

ありがとうございました

4

2 に答える 2

2

エスケープの問題を最小限に抑えるには、次のようにします

RequestContext.getCurrentInstance().execute("easyNameFunc();");

そしてあなたのjsで作成します

function easyNameFunc(){
    $('#tabView\\:lesarticles').children().find('table tbody tr td div').css('display', 'none');
}

そうすれば、より良いデバッグを行うことができ、落とし穴を減らすことができます

于 2013-05-08T09:41:19.700 に答える
1

ID (jQuery セレクターの場合) でコロンを適切にエスケープするには、4 つのバックスラッシュが必要でした。私はこれに何時間も苦労しました。おそらくこれは他の誰かを助けるでしょう。Firebug で実際にブラウザに送信されたものを見ると、2 つのバックスラッシュが 1 つになり、エラーが発生します。
変化する:

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');");

これにより、少なくともエラーを回避できます。

于 2014-09-15T02:29:51.080 に答える