Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过jQuery添加JSF标记/组件_Jquery_Jsf_Primefaces - Fatal编程技术网

通过jQuery添加JSF标记/组件

通过jQuery添加JSF标记/组件,jquery,jsf,primefaces,Jquery,Jsf,Primefaces,以下是我所做的: var a = $(document.getElementById("panelForm:tableId01")); $("<p:outputLabel value='Testing'/>").appendTo(a); var a=$(document.getElementById(“panelForm:tableId01”); $(“”)。附录(a); 它不显示标签,但如果我这样做,例如,它可以工作: $("<font color='red'>Re

以下是我所做的:

var a = $(document.getElementById("panelForm:tableId01"));
$("<p:outputLabel value='Testing'/>").appendTo(a);
var a=$(document.getElementById(“panelForm:tableId01”);
$(“”)。附录(a);
它不显示标签,但如果我这样做,例如,它可以工作:

$("<font color='red'>Red</font>").appendTo(a);
$(“红色”)。附录(a);
您不能使用
“$(“”)”
。因为它是PrimeFaces标记库。当页面呈现时,它将生成html标记(例如:
“测试”
)。因此,您应该使用jquery作为html标记。例如:

<p:outputLabel value='Testing' styleClass='my-class'/>"

var a = $(document.getElementById("panelForm:tableId01"));
$("label.my-class").appendTo(a);
”
var a=$(document.getElementById(“panelForm:tableId01”);
$(“label.my class”)。附录(a);
您不能使用
“$(“”)”
。因为它是PrimeFaces标记库。当页面呈现时,它将生成html标记(例如:
“测试”
),因此您应该使用jquery作为html标记。例如:

<p:outputLabel value='Testing' styleClass='my-class'/>"

var a = $(document.getElementById("panelForm:tableId01"));
$("label.my-class").appendTo(a);
”
var a=$(document.getElementById(“panelForm:tableId01”);
$(“label.my class”)。附录(a);

您似乎完全忽略了JSF和JavaScript上下文的要点

JSF基本上是一个HTML代码生成器。要亲自查看,请创建一个(简单且有效的)JSF页面,并在您喜爱的webbrowser中打开它。右键单击并选择“查看源”。你看到了什么?是的,这是一个完整的HTML代码!如果JSF正确地完成了它的工作,那么您不应该看到任何JSF标记,原因很简单,webbrowser不理解它们。它只懂HTML

JavaScript是一种客户端语言,在webbrowser中运行,而不是在webserver中运行。作为证据,当您在物理上不同的机器上运行webserver和webbrowser并调用JavaScript
onclick=“alert('peek-a-boo')”
时,您会在webbrowser中看到它,而不是在webserver中。JavaScript可以看到HTMLDOM树(通过
document
对象可用的任何内容,例如
document.getElementById(“someId”)
)。JavaScript无法看到负责生成HTML的原始服务器端源代码,更不用说执行了。对于jQuery来说,它没有什么不同,原因很简单,它是一个基于JavaScript的库

您需要以不同的方式解决具体的功能需求。如果您想动态添加JSF组件,那么应该通过JSF本身,而不是通过JavaScript。下面是一个答案,它显示了许多方法之一:。但是,如果您坚持使用jQuery来实现这一点,那么您应该自己指定JSF组件的HTML输出,但是您基本上仍然完全没有理解JSF的要点。然后仔细阅读下面的链接

另见:

您似乎完全忽略了JSF和JavaScript上下文的要点

JSF基本上是一个HTML代码生成器。要亲自查看,请创建一个(简单且有效的)JSF页面,并在您喜爱的webbrowser中打开它。右键单击并选择“查看源”。你看到了什么?是的,这是一个完整的HTML代码!如果JSF正确地完成了它的工作,那么您不应该看到任何JSF标记,原因很简单,webbrowser不理解它们。它只懂HTML

JavaScript是一种客户端语言,在webbrowser中运行,而不是在webserver中运行。作为证据,当您在物理上不同的机器上运行webserver和webbrowser并调用JavaScript
onclick=“alert('peek-a-boo')”
时,您会在webbrowser中看到它,而不是在webserver中。JavaScript可以看到HTMLDOM树(通过
document
对象可用的任何内容,例如
document.getElementById(“someId”)
)。JavaScript无法看到负责生成HTML的原始服务器端源代码,更不用说执行了。对于jQuery来说,它没有什么不同,原因很简单,它是一个基于JavaScript的库

您需要以不同的方式解决具体的功能需求。如果您想动态添加JSF组件,那么应该通过JSF本身,而不是通过JavaScript。下面是一个答案,它显示了许多方法之一:。但是,如果您坚持使用jQuery来实现这一点,那么您应该自己指定JSF组件的HTML输出,但是您基本上仍然完全没有理解JSF的要点。然后仔细阅读下面的链接

另见:

那么我如何才能获得这些html标记呢?我使用attr()方法为“class”设置一个值,但它不起作用,因为标记将自动生成html标记。您可以使用FireBug(如果您使用Firefox浏览器)来了解PrimeFaces生成的html标记。您可以执行以下操作:“var a=$(document.getElementById(“panelForm:tableId01”);$(“label[id*=myLabel]”。appendTo(a);我认为不能使用Javascript附加PrimeFaces标记。你应该按照其他方式来做。因为Javascript不理解PrimeFaces标记。你可以通过html标记来做。那么我如何才能获得这些html标记呢?我使用了attr()方法设置“class”的值,但它不起作用,因为标记将自动生成html标记。您可以使用FireBug(如果使用Firefox浏览器)了解PrimeFaces生成的html标记。您可以执行以下操作:“var a=$(document.getElementById(“panelForm:tableId01”)$(“标签[id*=myLabel]”。附录(a);我认为不能使用Javascript附加PrimeFaces标记。你应该按照其他方式做。因为JavaScript不理解PrimeFaces标记。你只需要通过html标签就可以了,谢谢你。我在这里用了那种方法,但似乎不管用。不客气。这是一个与当前问题不同的问题。是的,我使用了用户(Ömer Faruk Almalı)的方法,这就是这个问题。谢谢。我在这里用了那种方法,但似乎不管用。不客气。这是一个与当前问题不同的问题。是的,我使用了用户(Ömer Faruk Almalı)的方法,就是这个问题