Accordion无法从jsp脚本获取内部内容(HTML)
当我点击按钮时,我正在编写获取手风琴内容的代码。使用ajax调用从服务器接收手风琴的内部内容。这些内容显示在对话框中 现在的问题是,对话框中的内容(原本应该是accordion内容)可以看作是简单的html,而不是accordion(带按钮)。如果我只是在html文件中使用相同的内容(将从服务器收到的内容粘贴到“”中),它们工作正常,我可以在对话框中看到手风琴 出什么问题了?这与手风琴的内容需要提前提供有关。有人能建议一种方法来解决这个问题吗。(手风琴的内容每次从服务器接收时都会发生变化,这就是为什么它们会发生变化) Javascript函数是:Accordion无法从jsp脚本获取内部内容(HTML),html,ajax,jquery,accordion,Html,Ajax,Jquery,Accordion,当我点击按钮时,我正在编写获取手风琴内容的代码。使用ajax调用从服务器接收手风琴的内部内容。这些内容显示在对话框中 现在的问题是,对话框中的内容(原本应该是accordion内容)可以看作是简单的html,而不是accordion(带按钮)。如果我只是在html文件中使用相同的内容(将从服务器收到的内容粘贴到“”中),它们工作正常,我可以在对话框中看到手风琴 出什么问题了?这与手风琴的内容需要提前提供有关。有人能建议一种方法来解决这个问题吗。(手风琴的内容每次从服务器接收时都会发生变化,这就是
<script>
$(document).ready(function() {
$("#accordion").accordion({
autoHeight: false
});
</script>
<script language="javascript">
function Faulttest()
{
var xmlhttp;
if (window.XMLHttpRequest)
{xmlhttp=new XMLHttpRequest();}
else
{xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
Here we get the contents which should be inside the accordion which we receive from the server
> **document.getElementById("accordion").innerHTML=xmlhttp.responseText;**
}
}
xmlhttp.open("GET","http://****/Anomalies/index.jsp",true);
xmlhttp.send();
}
$(文档).ready(函数(){
$(“手风琴”)。手风琴({
自动高度:false
});
函数Faulttest()
{
var-xmlhttp;
if(window.XMLHttpRequest)
{xmlhttp=new XMLHttpRequest();}
其他的
{xmlhttp=newActiveXObject(“Microsoft.xmlhttp”);}
xmlhttp.onreadystatechange=函数()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
这里我们得到的内容应该在我们从服务器收到的手风琴内
>**document.getElementById(“accordion”).innerHTML=xmlhttp.responseText**
}
}
open(“GET”,“http://**/normales/index.jsp”,true);
xmlhttp.send();
}
网页的Html内容包括:
<body style="font-size:62.5%;" >
<div id="page">
<div id="header"><h1>header</h1></div>
<div id="body" >
<h1>content top </h1>
<div id="dia">
<div id="dialog" title="Detailed FeedBack"><div id="accordion">
// CODE SHOULD GO HERE
</div>
</div>
</div>
<button type="button" onclick="Faulttest();">Click Me!</button>
</body>
标题
内容顶端
//代码应该放在这里
点击我!
在不确切了解手风琴脚本如何工作的情况下,我假设这是因为脚本假设初始化时手风琴中的内容是脚本需要处理的内容
如果您的实现可行,请将空的div
s放入#accordion
(或accordion脚本为子节点指定的任何内容)并动态填充这些节点
否则,请等待在
#accordion
节点上初始化accordion,直到AJAX调用返回。实际上,我们只需要销毁并重新创建accordion。这可以按如下方式完成:
$('#accordion').append(xmlhttp.responseText).accordion('destroy').accordion();
如何初始化手风琴?我在javascript(Faulttest)之前初始化,为什么不使用JQuery$.ajax()函数?谢谢。我确实包含了不同的div,并动态添加了accordion标记和内容,但在这种情况下,我甚至无法查看返回的html内容。因此,我在html脚本本身中硬编码了accordion标记。它仍然不起作用。我尝试在ajax调用之后以及之前初始化accordion,但两者都没有起作用好的,在你的
#accordion
中,你有HTML中的div(静态)。然后,在你的AJAX回调中,你放入了accordion实例化代码。正确吗?请找到文件的HTML内容。