2014-02-24 74 views
0

我在我的網站上有多個列表(以不同的樣式)。每個列表元素都有一個唯一的data-id/class(兩個列表中都是相同的)。($ cid是唯一的id)。Jquery添加到同一類的多個div?

我想爲所有具有相同data-id/class的元素添加一個「selected」類。

<div id="page"> 
    [...] 
    <div id="printlist"> 
     <div data-id="pc_{$cid}" class="pc_{$cid} productc"> 
      <h5>TITLE</h5> 
     </div> 
    </div> 
    [...] 
    <div id="footer"> 
     <div data-id="pc_{$cid}" class="pc_{$cid} productc"> 
      <h5>SAME TITLE, OTHER POSITION</h5> 
     </div> 
    </div> 
</div> 

到目前爲止我試過:

jQuery(document).ready(function() { 
    $('.productc').click(function(){ 
     id = $(this).attr('data-id'); 
     $('.'+id).addClass('selceted'); 
    }); 
}); 

無論這工作:

jQuery(document).ready(function() { 
    $('.productc').click(function(){ 
     id = $(this).attr('data-id'); 
     $('.'+id).each(function(i){ 
      $('.'+id).addClass('selceted'); 
     }); 
    }); 
}); 
+0

是在這裏工作的罰款:http://jsfiddle.net/IrvinDominin/bbMcF/ –

+2

你在你的'addClass()'知道錯字? 'selceted'而不是'selected'?這可能是您沒有看到該課程適用的原因。 –

+0

回滾編輯,因爲它修復了可能導致代碼失敗的問題。 –

回答

2

你輸錯選擇,並與同班 影響到所有的元素儘量使用

$('.productc .'+$(this).attr('data-id')).addClass('selected'); 

點擊功能

+0

非常感謝!昨天肯定太晚了.. – 3und80

0

我建議裏面,雖然未經測試:

$('li[data-id').filter(function(){ 
    return this.id == $(this).data('id'); 
}).addClass('selected'); 

參考文獻:

+0

謝謝。沒有嘗試過這個,因爲其他答案工作正常。 – 3und80

+0

他們似乎還有更多的工作,更冗長;但你非常歡迎! :) –

2

這個怎麼樣:

jQuery(document).ready(function() { 
    $('.productc').click(function(){ 
     var id = $(this).attr('data-id'); 
     $('.'+id).each(function(i){ 
      $(this).addClass('selected'); // $(this), not the id element 
     }); 
    }); 
}); 
+0

非常感謝!這也很好。我選擇了另一個答案,因爲它更短。 – 3und80