2017-01-15 6 views
0

のクラスを追加します。はすべて同じテキスト私は私のコードで

<a class="choice" data-name="i_can_a_test_1"> 
    <img class="img-responsive" src="image.png" > 
</a> 
<a class="choice" data-name="i_can_a_test_2"> 
    <img class="img-responsive" src="image2.png" > 
</a> 

<table> 
<tr><td name="i_can_a_test_1" id="name_cards">i_can_a_test_1</td></tr> 
<tr><td name="i_can_a_test_2" id="name_cards">i_can_a_test_2</td></tr> 
<tr><td name="cant_a_test_1" id="name_cards">cant_a_test_2</td></tr> 
</table> 

しかし、今私がしたい:同じ場合は、すべてのi_can_a_test_*

$('body').on("click",".choice", function(){ 

    var same_text = $(this).data('name').slice(0,6);   
    var same = $('td[name^='+same_text+']').length; 

    **if same, add class for all "i_can_a_test_*"** 
}); 

のためのクラスを追加しますが、私はそれを行うことができますどのように知っていますか?それぞれ私は思う。

+0

IDは一意である必要があります。 use class = "name_cards"次に$( "。name_cards") –

答えて

0

あなたが属性をセレクタで始まることを達成することができます。ここで

http://api.jquery.com/attribute-starts-with-selector/

$('body').on("click",".choice", function(){ 
 

 
    var same = $(this).data('name').slice(0,13); 
 
    $('td[name^=' + same + ']').addClass('myClass'); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a class="choice" data-name="i_can_a_test_1"> 
 
    <img class="img-responsive" src="image.png"/> 
 
</a> 
 
<a class="choice" data-name="i_can_a_test_2"> 
 
    <img class="img-responsive" src="image2.png"/> 
 
</a> 
 

 
<table> 
 
    <tr><td name="i_can_a_test_1">i_can_a_test_1</td></tr> 
 
    <tr><td name="i_can_a_test_2">i_can_a_test_2</td></tr> 
 
    <tr><td name="cant_a_test_1">cant_a_test_2</td></tr> 
 
</table>

+0

うん、その正しい、thx – Unmecparla

0
[...document.getElementsByClassName("*")].filter(e=>e.textContent.split("i_can_a_test_")[1]).forEach(e=>e.ClassName+=" someclass"); 

これは、あなたが求めていることです。しかし、これは

0

クラスにID = "name_cards" を変更した後...悪いスタイルです:

$('body').on('click', '.choice', function(e) { 
    var name = $(this).data('name').substr(0,6) 
    , $cards = $('.name_cards') 
    ; 
    $cards 
    .removeClass('red') 
    .filter('[name^="'+name+'"]') 
    .addClass('red') 
    ; 
}); 

http://codepen.io/anon/pen/YNGqEQ

関連する問題