2016-11-02 63 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

相关问题