成功的AJAX调用后,我需要更新特定的表行(通过tr id =“unique_key”)。

HTML片段:

<a name=\"p{$product_id}\" class=\"tr{$product_id}\"></a>
<tr id="p{product_id}" class="item-row">
<td><h3>{product_id}</h3><a rel="facebox" href="ajax_url">{product_name}</a></td>
<td>{image_information}</td>
<td>{image_sortiment}</td>
<td>{product_status}</td>
</tr>

Javascript:
// AJAX Call
success: function(msg){
    $('#p' + prod_id).remove();
    $('.tr' + prod_id).after(msg);
    $('#p' + prod_id + ' a[rel*=facebox]').facebox();
}
...

怎么了:
  • 表行已删除
  • anchor 定成一行(不在<tr>之前),因此我的“钩子(Hook)”消失了
  • AJAX结果插入到整个表中(在我的“钩子(Hook)”之后,但仍然是错误的位置)

  • 我的主意怎么了?如何强制jQuery“覆盖”所需的表行?

    最佳答案

    您不能在表内而是表行外具有 anchor 。表格中的所有内容都必须在表格单元格内。如果将内容放在单元格之外,浏览器将尝试修复代码,以便通常通过将其移动到表格后方来显示它。

    处理表中的内容可能很棘手,如果将行添加为html块而不是行元素,则可能会起作用。使用jQuery函数从您获得的字符串中创建元素。

    var row = $(msg);
    $('#p' + prod_id).replaceWith(row);
    

    关于javascript - 使用jQuery通过给定ID更新表行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2735474/

    10-12 15:58