0

我正在使用 jquery 进行 Ajax 调用,并将内容放入 div 中,如下所示:

$('#replace').html(response);

但它并没有取代我从“响应”中获得的所有内容。

当我做 :

alert(response)

我看到所有的 HTML 代码都没有问题。

但是当我这样做时:

$('#replace').html(response);

它不会从响应中放入所有 HTML 代码。

当我发出警报时

alert(response);

我得到了这个(这是正确的):

#
    <div id='replace'>      
            <tr onclick='javascripot:gravaJOBparaView(5746);' ondblclick='fnOpen(5746);' >
                      <td class='preview' title='8746' >8746</td>
                      <td>XXXX</td>
                      <td>xxxxx</td>
                      <td>xxxx</td>
                      <td>xxx</td>
                  <td>xxxxx</td>
                  <td title='xpto'>XXXXXX</td>
                  <td></td>
                  <td> <br/>18:00</td>
                  <td>22/07/2012</td>
                  <td title='Check XXXXX' class='popups' ><a href='#popup_5746'><img src='xpto.png'  alt='Check XXXXXX' width='40px'></a></td>

        </tr>   
  </td>

#

但是当我这样做时:

$('#replace').html(response);

它将这段代码放在 div 'replace' 中:

#
   <div id="replace">       

                  8746
                  XXX
                  XXXX
                  XXXX
                  XXXXX
                  XXXXX
                  RXXXXXX

                   <br>18:00
                  22/07/2012
                  <a href="#popup_5746"><img width="40px" alt="Check XXXXX" src="xxxxxx.png.png"></a>
  </div>
#

正如您所看到的,由于某种原因,它不会将所有标签都放在响应中。

我应该怎么办?

4

3 回答 3

2

您的 HTML 无效。<tr>必须在表格标签中。代替

<div id='replace'>

经过

<table id='replace'>

将最后</td>一个替换为</table>

http://jsfiddle.net/wk4eD/1/

页面中的两个元素不能具有相同的 id

于 2012-07-21T15:16:48.350 回答
1

您需要注意 html 嵌套规则。 <td>must be inside a <tr>which must be inside a <table>(从技术上讲,你需要一个 tbody 或 thead,但浏览器可以容忍这个)。

您应该使用此服务:http: //validator.w3.org/#validate_by_input

在更多选项下,选择验证 HTML 片段并匹配您的文档类型。您可以使用它来确保 HTML 在尝试将其填充到该 div 之前是有效的。

于 2012-07-21T15:13:21.223 回答
0

你必须关闭你可能想要使用的 div

 </tr> 
  </div>  
  </td>

在最后。JQuery 可能会替换之前的文本,
因为它找不到正确的 div end 语句。

于 2012-07-21T15:05:23.347 回答