繁体   English   中英

jQuery-ajax html解码

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM