【问题标题】:Attributes undefined when accessing via JQuery livequery通过 JQuery livequery 访问时属性未定义
【发布时间】:2025-12-13 15:55:02
【问题描述】:

我对 JQuery 很陌生,所以这可能听起来很荒谬,但我有一个表单可以通过 AJAX 将数据重新填充到 div 部分。我遇到的问题是我有一个链接,我需要在其中访问一些在 AJAX 刷新期间呈现到页面的表行属性,但根据我设置的警报,这些属性都是未定义的。有谁知道我如何在 livequery 中再次访问该数据?下面是代码。

//Rebind anchor tags for add links.
$('a[class=add_player]') 
    .livequery('click', function(event) { 

    var parentRow = $(this).parent().parent();          
    //Pulling player information from table row tag 
    var playerID = parentRow.attr("player_id");  //playerID is 'undefined' when alerted.

    refreshPlayer(playerID);
});

HTML

<tr player_id="123">
   <td><a class="add_player">Tester</a></td>
</tr>

【问题讨论】:

  • 你确定你引用了正确的元素吗?您的代码看起来正确。你用 Firebug 调试过吗?
  • 我还没有打开 Firebug,但我很确定我引用了正确的元素。作为一个仅供参考,上面的代码是在 AJAX 响应加载后立即嵌入的,而不是在 document.ready 块中。我不确定这是否重要。

标签: jquery jquery-plugins


【解决方案1】:

我的工作方式是这样的,放弃 livequery() 为现在的原生 live()

$('a[class=add_player]').live('click', function(event) { 
    var playerID = $(this).closest('tr').attr('player_id');                  

    alert(playerID);

    refreshPlayer(playerID);
    return false;
});

【讨论】: