2014-07-06 27 views
-1

當我點擊我的「刪除」鏈接時,我想將我的列表項目添加到背景紅色。當我點擊我的「刪除」鏈接時,試圖將我的列表項目添加到背景紅色

我試圖用下面的代碼做到這一點,但它不工作。

我查了很多次的代碼,我沒有找到問題所在。

你看到我在這裏做錯了嗎?

這是我的html:

<div class="posts"> 
    <ul class="content bannerli"> 
     <?php 
     $read = $pdo->prepare("SELECT * FROM banners"); 
     $read->execute(); 

     while ($result = $read->fetch(PDO::FETCH_ASSOC)) { 

      echo '<li class="li id="'.$result['id'].'">'; 
       echo '<div class="info">'; 
        echo '<p class="title">'.$result['title'].'</p>'; 
        echo '<p class="img">'.$result['img'].'</p>'; 
        echo '<span>'; 
         echo '<a title="Delete" id="'.$result['id'].'" class="delete j_banndelete" href="#">Delete</a>'; 
        echo '</span>'; 
       echo '</div>'; 
      echo '</li>'; 
     } 
     ?> 
    </ul> 
</div> 

這是我的jQuery:

$('.bannerli').on('click','.j_banndelete',function(){ 
    var bannerid = $(this).attr('id'); 
    $('.bannerli li[id="'+ bannerid +'"]').css('background','red'); 

return false; 
}) 

回答

1

不允許你有具有相同ID的多個元素。向他們添加前綴(id=li_XXXX,id=delete_XXXX等),或使用層級結構(例如$(this).parent().parent().parent().css(...)

+0

謝謝您的解決方案。但是很奇怪。因爲我有其他例子使用我的問題相同的方法與兩個元素與ID和它完美的作品。 – UserX

+1

如果您有兩個具有相同ID的元素,則會發生什麼情況完全未定義。有些瀏覽器可能選擇第一個,其他瀏覽器可能選擇最後一個,而其他瀏覽器則完全忽略它。無論如何,這是完全禁止的規格。 – jcaron

+0

也謝謝你的明確和有益的解釋! – UserX

相關問題