2011-12-30 25 views
1

獲取ID我有一個代碼PHP:錯誤時的jQuery

<?php 
for ($i=0, $n=count($this->item); $i < $n; $i++) { 
$row = &$this->item[$i]; 
?> 
<tr id="<?php echo $row->id; ?>" class="row"> 
<span id="name_<?php echo $row->id; ?>" class="text">&nbsp;<?php echo $row->name; ?></span> 
<input type="text" value="<?php echo $row->name; ?>" class="editbox" id="name_input_<?php echo $row->id; ?>" /> 
</tr> 
<?php 
$i++; 
} 
?> 

和jQuery從這個腳本PHP獲取ID

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
    $('.row').click(function(){ 
     var ID = $(this).attr('id'); 
     $('#name_'+ID).hide(); 
     $('#name_input_'+ID).show(); 
     alert(ID); 
    }); 
}); 
</script> 

錯誤,當我輸出警報(ID),結果爲NULL,如何獲得ID?

+0

在你的PHP回聲$按行> id的值,並檢查是否被分配一個山谷或不 – 2011-12-30 08:03:16

+1

'console.log(this);' – zerkms 2011-12-30 08:03:40

+0

向我們展示來自該PHP代碼的輸出HTML。同樣在你的Javascript中,只需使用'this.id'而不是'$(this).attr('id')',因爲它速度更快。 – Paulpro 2011-12-30 08:07:18

回答

1

試試這個....

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"</script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
$('.row').click(function(){ 
    var ID = $(this).closest('tr').attr('id'); 
    $('#name_'+ID).hide(); 
    $('#name_input_'+ID).show(); 
    alert(ID); 
    }); 
}); 
</script> 
1

我想在你的HTML代碼表中的問題一定是這樣的:

<table> 
    <tr> 
    <td></td> 
    </tr> 
</table> 

變化:

<?php 
for ($i=0, $n=count($this->item); $i < $n; $i++) { 
$row = &$this->item[$i]; 
?> 
<tr id="<?php echo $row->id; ?>" class="row"> 
<td> 
<span id="name_<?php echo $row->id; ?>" class="text">&nbsp;<?php echo $row->name; ?></span> 
<input type="text" value="<?php echo $row->name; ?>" class="editbox" id="name_input_<?php echo $row->id; ?>" /> 
</td> 
</tr> 
<?php 
$i++; 
} 
?> 
+0

這是一個jsfiddle它的工作原理:http://jsfiddle.net/nqDd4/ – RSG 2011-12-30 08:15:36

0

你可能遇到與主ID格式本身有關的問題 - 不應以http://www.w3schools.com/tags/att_standard_id.asp開頭 - 而應使用帶有ID後綴的名稱然後刪除前綴以獲取數字值。

嘗試這種在TR:<tr id="rowid_<?php echo $row->id; ?>" class="row">

,然後在你的代碼:

$('.row').click(function(){ 
      var rowid = $(this).attr('id'); 
var ID = rowid.replace(/rowid_/,''); 
      $('#name_'+ID).hide(); 
      $('#name_input_'+ID).show(); 
      alert(ID); 
     });