[英]jQuery-ajax html decoding
我有一个div,需要通过ajax调用填充html表。
HTML:
<div id="showIdDiv"></div>
js:
$.ajax({
url: '../include/showIdDesc.php',
success: function(data) { $("#showIdDiv").html(data); },
data: {id: id,numPerPage: numPerPage},
dataType: "html"
});
php脚本只是从db构建表。
这是我从firebug控制台得到的响应,这是我想要的:
<br ><br ><table class="listings"><caption> You Selected Id - melon_c10127:</caption><tr class='colNames'><th>ID</th><th>Description uniprot</th><th>Uniprot Name</th><th>Cluster</th></tr><tr><td>melon_c10127</td><td>No Matching Hit found</td><td class="alignText"><a href="http://www.uniprot.org/uniprot/" target="_blank"></a></td><td class="alignText"><a href="cluster.php?query_type=cluster&id=melon_c10127&numPerPage=10&page=0&cluster_search=6">6</a></td></tr></table><br ><br ><br >
但这是浏览器显示的内容:
<br/>
<br/>
<table class="listings"/>
<h4/>
You Selected Id - 14235:IDDescription uniprotUniprot NameCluster14235
<a href="" target="_blank"/>
<a href="cluster.php?query_type=cluster&id=14235&numPerPage=10&page=0&cluster_search=2"/>
2
<br/>
<br/>
<br/>
好像没有正确解码html元素。 它发生在所有浏览器上。 我究竟做错了什么?
谢谢...
我尝试进行测试:
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="../js/jquery.js"></script>
<script type="text/javascript" src="../test.js"></script>
</head>
<body>
<button onclick="test1()">test</button>
<div id="test"></div>
</body>
</html>
测试
js:
function test1()
{
$.ajax({
url: '../test2.php',
success: function(data) { $("#test").html(data); },
dataType: "html"
});
}
的PHP:
<?php
echo "<table>";
echo "<caption>test</caption>";
echo "<th>test1</th><th>test1</th><th>test1</th><th>test1</th>";
echo "<tr><td>1</td><td>2</td><td>3</td><td>4</td></tr>";
echo "</table>";
?>
确实是最基本的脚本,但得到的结果与原始问题相同。 因此,可能不是html标记错误。
再次感谢...
HTML无效(例如,您不能将<h4>
元素用作<table>
的子元素),并且浏览器正在尝试错误恢复。
您不能将<h4>
元素直接嵌套在<table>
元素内,这就是HTML无法正确呈现的原因。
将<h4>
移出桌子,然后重试!
像这样的<table>
标记内不能有<h4>
标记。
您的浏览器正在捕获错误并尝试纠正,这就是为什么您看到</table>
显然,我的jQuery文件存在缺陷。 一旦我再次下载文件,一切都很好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.