2016-11-02 64 views
0

元素我有兩個列表jQuery的檢查,如果一個UL包含了另一個

我想要做的是從第一個列表讓每一個元素的文本,如果文本的第二元素的值相匹配列表中,而不是在該選擇選項第二個列表中爲它着色

這是兩個列表:

列表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> 

這是我做的,到目前爲止....

 $("#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'); 
      } 
     }); 
    }); 
+0

您可以嘗試迭代2列出了所有的選項,而值(加倍)存放在數組中。然後,迭代這個新的數組,併爲每個div使用value =來指定數組索引 –

回答

5

使用屬性選擇器來選擇o具有價值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>

刪除元素不在列表中做到以下幾點:一類添加到元素列表並刪除不具有該類

$("#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

好極了!哇,我和v代表什麼?如果我想刪除所有沒有着色的元素?我該怎麼做? – DavSev

+1

i是索引,v是循環中當前元素的值,用於刪除其他選項,使用remove()函數 – madalinivascu

相關問題