Не получается запустить .each() функцию

157
14 августа 2018, 04:20

Вопрос заключается в том что не получается заставить работать выборку по условию, конкретно пример кода:

<table>
<tr><td style="white-space: nowrap;">Клас хвороб:</td><td><div id="svc_mkxclass">Не визначено</div></td></tr>
<tr><td style="white-space: nowrap;">Kод захворювання:</td><td><div id="svc_mkxkod">Не визначено</div></td></tr>
<tr><td style="white-space: nowrap;">Нозологічна форма:</td><td><div id="svc_mkxdiagn">Не визначено</div></td></tr>
</table>
<script language="JavaScript" type="text/javascript">
$(function(){
    var SvcCheck = [{"class":"1"},{"kod":"1"},{"diagn":"1"}];
    $( "[id^='svc']" ).each(SvcCheck, function(i, field){
        var name = '#svc_mkx' + field.name;
        var value = parseInt( field.value * 1 );        
        if ( value != 0 ) {
            $( name ).css({ 'color': 'red' });
        }
    });
});
</script>

для наглядности это же на jsfiddle.net

Answer 1

Вы перемешали два вида функции each в jQuery, не говоря уже о непонятно откуда взявшихся свойствах name и value.

$(function() { 
  var SvcCheck = [ 
    { name: "class", value: 1 },  
    { name: "kod", value: 1 },  
    { name: "diagn", value: 1 } 
  ]; 
  $.each(SvcCheck, function(i, field) { 
    var name = '#svc_mkx' + field.name; 
    if (field.value != 0) { 
      $(name).css({ 'color': 'red' }); 
    } 
  }); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<table> 
  <tr> 
    <td style="white-space: nowrap;">Клас хвороб:</td> 
    <td><div id="svc_mkxclass">Не визначено</div></td> 
  </tr> 
  <tr> 
    <td style="white-space: nowrap;">Kод захворювання:</td> 
    <td><div id="svc_mkxkod">Не визначено</div></td> 
  </tr> 
  <tr> 
    <td style="white-space: nowrap;">Нозологічна форма:</td> 
    <td><div id="svc_mkxdiagn">Не визначено</div></td> 
  </tr> 
</table>

READ ALSO
Не работают стили css в jQuery

Не работают стили css в jQuery

Пытаюсь вызывать меню по клику на элемент div

200
chrome.tabs.executeScript|insertCss срабатывает через раз

chrome.tabs.executeScript|insertCss срабатывает через раз

Добавляю стили и скрипты на определенный сайт в background

174