2013-08-27 68 views
1

我有複選框的動態行讓家長自定義屬性值,我所要做的就是讓家長Tr的自定義屬性值,但未能如願,,我在做一些這樣的事如何使用jQuery

jQuery('[id^="status-"]').click(function(event) { 
    var parentTrID = $(this).parent().find('data-tt-id'); 
    alert(parentTrID); 
}); 

,這是我的HTML/PHP的一部分

 <?php 
      $count = 0; 
      foreach ($this->Allocations as $Allocation) 
      { 
       $count++; 
       ?> 
       <tr id="<?php echo $count; ?>" data-tt-id="<?php echo $Allocation->getId(); ?>" <?php echo (is_object($Allocation->getParent()) ? 'data-tt-parent-id="' . $Allocation->getParent()->getId() . '"' : ''); ?>> 
        <td><?php echo @$Allocation->getName(); ?></td> 
        <td id="chk"><input type="checkbox" name="status[]" value="<?php echo $Allocation->getId(); ?>"></td> 
        <td><input type="hidden" id="code-<?php echo $count; ?>" name="code-<?php echo @$Allocation->getCode(); ?>"></td> 
       </tr> 
      <?php }; ?> 
+2

發佈渲染的標記。我們無法用我們的大腦解析您的服務器端代碼。 – undefined

回答

1

你可能需要data()代替find(),如發現用於查找html元素不是HTML元素的屬性。當你有數據屬性您更好地使用數據,而不是attr()

var parentTrID = $(this).closest('tr').data('tt-id'); 

你都在ID綁定事件,但你沒有ID likr狀態 - 但其名稱使用屬性選擇名字。還要綁定document.ready中的事件,並確保您已成功地包含 jQuery。

jQuery('[name^="status-"]').click(function(event) { 
    var parentTrID = $(this).closest('tr').find('data-tt-id'); 
    alert(parentTrID); 
}); 
+0

已經試過這個,並且它不工作 –

+1

否決權的理由? – Adil

+2

答案建議'.attr()'在忍者編輯之前沒有提及'.data()'。 – JJJ

1

必須使用.data()

$(this).parent().data('tt-id') 
+0

我試過這個,但它不工作。 –

+0

嘗試'jQuery('[name^='status「]')。click(function(event){' –

+0

是的,我很快沒有離開我的基準 –

0

當我看到它,你生成這個代碼超過一次吧?這意味着你有多個具有相同ID的<td id="chk">元素,而且你不能擁有。你可以查詢here

因此,添加一些代碼來首先生成唯一的ID。 (Like <td id="chk_<?php echo $count; ?>">