在属性中查找子字符串

时间:2017-11-10 13:06:50

标签: javascript jquery attr

我将所有选中复选框中的id放入数组并将其转换为字符串。现在我想循环遍历HTML中的所有标签,看看for属性的值是否与所有id的字符串中的内容匹配,如果匹配则更改标签的css。提前谢谢。

var $all_labels = $('.filter-choices label')

$all_labels.each(function(){
      var self_item = $(this)
      if( self_item.attr('for').is(checked_items_ids_string) === true){
      self_item.css('color','white')
   }
});

2 个答案:

答案 0 :(得分:0)

  

首先,我将所有已选中复选框中的ID放入数组中   将它转换成字符串

     

现在我想循环遍历HTML中的所有标签,看看是否有值   for属性与所有id的字符串中的某些内容匹配。

尝试

var checkedItems = []; //assuming this is already populated
$( "label[for]" ).each( function(){
   var idVal = $(this).attr( "for" );
   if ( $("#" + idVal).length > 0 && checkedItems.indexOf( idVal ) != -1 )
   {
      //element with id exists
      $(this).css('color','white')
   }
})

答案 1 :(得分:0)

也许这种方法也会有所帮助:



$('button').click(function () {
  $('input').each(function () {
    if ($(this).is(':checked'))
      $(this).prev('label').css("color", "red")
    else
      $(this).prev('label').css("color", "black")
  })
})

<label for="i1">Input 1: </label>
<input type="checkbox" id="i1">
<br>
<label for="i1">Input 1: </label>
<input type="checkbox" id="i1">
<br>
<label for="i1">Input 1: </label>
<input type="checkbox" id="i1">
<br>
<label for="i1">Input 1: </label>
<input type="checkbox" id="i1">
<br>
<label for="i1">Input 1: </label>
<input type="checkbox" id="i1">
<br>
<button>Change labels</button>

<script src="https://unpkg.com/jquery"></script>
&#13;
&#13;
&#13;