2015-09-25 24 views
0

我有一個PHP循環,打印錨多次:得到錨已經多個錨定中點擊有相同的ID

<div class="hidden-phone visible-desktop action-buttons"> 
    <a class="red" href="#" id="d_id" data-value="<?php echo $row['id'];?>"> 
     <i class="icon-trash bigger-130" id="bootbox-confirm"></i> 
    </a> 
</div> 

,我有這樣的jQuery代碼來獲取已被點擊的鏈接:

 <script type="text/javascript"> 
     $(function() { 
      $("#d_id").on(ace.click_event, function() { 
       var x = $(this).attr('data-value'); 
       bootbox.confirm(x, function(result) { 
        if(result) { 
         bootbox.alert(x); 
        } 
       }); 
      }); 
     }) 
    </script> 

這項工作只爲第一錨

任何幫助,將不勝感激

+4

'id's應該是您的文檔中是唯一的。一旦jQuery找到具有該「id」的元素,它將停止查找。如果你想引用多個項目,你應該使用'class'來代替。 –

+0

https://api.jquery.com/id-selector/ –

+2

根據jQuery文檔:每個id值只能在文檔中使用一次。如果多個元素被分配了相同的ID,那麼使用該ID的查詢將僅選擇DOM中第一個匹配的元素。不過,這種行爲不應該依賴。具有多個使用相同ID的元素的文檔無效。 –

回答

2

更改ID的上課,因爲ID是換貨是唯一的,因爲這個原因與該ID的第一個元素將是唯一的jQuery考慮:

<div class="hidden-phone visible-desktop action-buttons"> 
    <a class="red d_id" href="#" data-value="<?php echo $row['id'];?>"> 
     <i class="icon-trash bigger-130" id="bootbox-confirm"></i> 
    </a> 
</div> 

<script type="text/javascript"> 
    $(function() { 
     $(".d_id").on(ace.click_event, function() { 
      var x = $(this).attr('data-value'); 
      bootbox.confirm(x, function(result) { 
       if(result) { 
        bootbox.alert(x); 
       } 
      }); 
     }); 
    }) 
</script> 
+0

非常感謝你,它像一個魅力:) –

0

你不應該有多個div具有相同ID,將其更改爲類,然後在單擊事件選擇器上,輸入'.d_id'。

此外,使用$(this)可以獲得實際點擊的元素,這意味着「this」可以是您在那裏的圖標元素,而不是您想要的元素。

所以,你可以這樣做:

$("#d_id").on(ace.click_event, function() { 
    var x = $(this).attr('data-value'); 
    if (typeof x === 'undefined'){ 
     x = $(this).parent().attr('data-value'); 
    } 
    ... 
}); 

事情是這樣的:-)

+0

感謝你的朋友,以前的解決方案工作正常:) –