使用nearest()导航表DOM

时间:2012-04-18 21:16:09

标签: jquery mysql

我正在使用 nearest(),它导航dom并使用它来查找行元素 tr ,但它似乎返回一个空的警告对话框指示没有任何东西被检索。我做错了什么?

的JavaScript

$(document).ready(function () {
$('.manage').click(function(){
  // find the row we are in
  var $self = $( self );
  var $row = $self.closest( 'tr' );

  // read the id
  var $idCell = $row.find( '.id' );
  var caseId = $idCell.text();

  alert(caseId);

  });
});

HTML:

 <table border="0" class="sortable">
      <tr>
        <th>ID</th>
        <th>Functions</th>
      </tr>
      <?php do { ?>
        <tr>
          <td class="id"><?php echo $row_cases['id'].'-'.$_GET["progress"]; ?></td>
          <td><img src="components/manage.png" width="16" height="16" class="manage">
        </tr>
        <?php } while ($row_cases = mysql_fetch_assoc($cases)); ?>
    </table>

提前致谢!

4 个答案:

答案 0 :(得分:3)

您使用的是self而不是this,JavaScript中没有self。这应该有效:

$(document).ready(function () {
     $('.manage').click(function(){
          // find the row we are in
          var $row = $( this ).closest( 'tr' );

          // read the id
          var $idCell = $row.find( '.id' );
          var caseId = $idCell.text();

          alert(caseId);
     });
});

答案 1 :(得分:1)

您需要this,而不是self

var $self = $(this);

答案 2 :(得分:1)

最有可能的是,var $self = $( self );应该是var $self = $( this );

答案 3 :(得分:0)

以下行中的'self'是什么?

var $self = $( self );

它应该是这样吗?

v$('.manage').click(function(event) {
    // find the row we are in
    var $self = $( event.target );