2016-11-02 7 views
0

からの要素が含まれているかどうかを確認には、最初のリストからすべての要素のテキストを取得することですその選択肢の2番目のリストに色を付けるよりも、 ....これは私が今までにやったことあるjQueryの1つのULは、私は私が何をしたい二つのリスト</p> <p>を持っている別の

 $("#edit-field-building-no-value-wrapper option").each(function() { 
     var building = $(this).text(); 
     console.log(building); 


     $("#rssedituserdata>li").each(function(building) { 
      if ($(this).has(building)) { 
       building.css('color', 'red'); 
      } 
     }); 
    }); 

リストはありません1

<div id="rssedituserdata"> 
<li>1444</li> 
<li>1445</li> 
</div> 

リストはありません2

<div class="form-item form-item-labeled" id="edit-field-building-no-value-wrapper"> 
<select name="field_building_no[value][]" multiple="multiple" class="form-select" id="edit-field-building-no-value"> 
    <option value="1444">a</option> 
    <option value="1445">b</option> 
    <option value="1446">c</option> 
    <option value="1447">d</option> 
    <option value="1448">e</option> 
    <option value="1449">f</option> 
    <option value="1450">g</option> 
</select> 
</div> 

この2つのリストです

+0

を持たないすべてのオプションを削除し、配列に(倍増されている)の値を格納します。次に、この新しい配列を繰り返し、各divの値を配列のインデックスに置き換えます。 –

答えて

5

属性セレクタを使用して、値を持っているptionsは、リスト項目のテキストと同じ属性:

$("#rssedituserdata>li").each(function(i,v) { 
 
     $('option[value="'+$(v).text()+'"]').css('color', 'red'); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="rssedituserdata"> 
 
<li>1444</li> 
 
<li>1445</li> 
 
</div> 
 

 

 
<div class="form-item form-item-labeled" id="edit-field-building-no-value-wrapper"> 
 
<select name="field_building_no[value][]" multiple="multiple" class="form-select" id="edit-field-building-no-value"> 
 
    <option value="1444">a</option> 
 
    <option value="1445">b</option> 
 
    <option value="1446">c</option> 
 
    <option value="1447">d</option> 
 
    <option value="1448">e</option> 
 
    <option value="1449">f</option> 
 
    <option value="1450">g</option> 
 
</select> 
 
</div>

リストにない要素を削除するには次のようにします。リストの要素にクラスを追加しますそのクラスあなたは2つのリストを反復処理しようとすることができ

$("#rssedituserdata>li").each(function(i,v) { 
 
     $('option[value="'+$(v).text()+'"]').addClass('dont-remove').css('color', 'red'); 
 
    }); 
 
$('option:not(.dont-remove)').remove();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="rssedituserdata"> 
 
<li>1444</li> 
 
<li>1445</li> 
 
</div> 
 

 

 
<div class="form-item form-item-labeled" id="edit-field-building-no-value-wrapper"> 
 
<select name="field_building_no[value][]" multiple="multiple" class="form-select" id="edit-field-building-no-value"> 
 
    <option value="1444">a</option> 
 
    <option value="1445">b</option> 
 
    <option value="1446">c</option> 
 
    <option value="1447">d</option> 
 
    <option value="1448">e</option> 
 
    <option value="1449">f</option> 
 
    <option value="1450">g</option> 
 
</select> 
 
</div>

+0

素晴らしい! wahtはvとiの略ですか?私は着色されていないすべての要素をすべて削除したい場合は?どうすればいい? – DavSev

+1

iはインデックス、vはループ内の現在の要素の値で、他のオプションを削除するremove()関数を使用する – madalinivascu

関連する問題