2015-12-01 1 views
1

Я пытаюсь покрасить элементы кода диапазона. Я пробовал различные решения подобных вопросов, но они, похоже, не работают на меня. В следующем коде только строка addClass не работает.jQuery addClass или css не работает при определенных условиях

фрагмент кода 1

for (var m=0;m<software.length;m++) 
{ 
    alert('software['+m+'] :'+software[m].priority); 
    if(software[m].priority>=2) 
    { 
     alert('software['+m+'] :'+software[m].priority); 
     alert("$('#software["+m+"]').addClass('redClr');"); 
     $('#software['+m+']').addClass('redClr'); 
     } 
    software[m].priority=0; 
    alert('software['+m+'] :'+software[m].priority); 
}; 

Я попытался .css метод вместо и, что тоже не работает.

$('#software['+m+']').css("color","red"); 

Элементы span генерируют динамически в соответствии с некоторыми условиями. И он генерируется хорошо. Sample идентификатор для сгенерированного пролета: Программное обеспечение [0]

Пример: код фрагмента 2

if (checkedValues[j]==allValues[0]) { 
    $("#softwareLeft").append("<span class='boldText'>"+allValues[0]+" :</span><br>"); 
    for(var k=0;k<software.length;k++) { 
     if(software[k].calculation==1){ 
      //alert(software[k].name); 
      if(software[k].combo!=1){ 
      $("#softwareLeft").append("<span class='softList' id='software["+k+"]'>"+software[k].name+"(Rs: "+software[k].prize+")</span><br>"); 
      }; 
      if(software[k].combo==1 && software[k].priority==0){ 
       $("#softwareRight").append("<span class='softList'>"+software[k].name+"(Rs: "+software[k].prize+")</span><br>"); 
      }; 
      software[k].priority++; 
     }; 
    }; 

И уже класс прикладывается под названием «softList», чтобы охватить элементы, которые только содержат следующий код CSS

.softList{ 
    margin-left: 30px; 
} 

И оба кода триггеров под одной кнопкой мыши, как

$("#nextBtn").click(function() { 
    //Code fragment 2 
    //Code fragment 1 
}); 

Как я уже сказал, Я уже хорошо изучил этот вопрос и нашел много похожих, но несколько разных вопросов. Он строго придерживается определенных условий, поэтому размещается отдельно.

+3

Положите в JsFiddle ссылки легко отлаживать –

+0

https://jsfiddle.net/kgh30ff4/1/ Но не потому что не знаю, как включить в него большие всплывающие css и js-файлы. Кроме этой ошибки, код отлично работает на моей локальной системе. –

ответ

2

Проблема с идентификатором. Значение атрибута HTML ID может быть комбинацией числа и строки, если вы попытаетесь с программным обеспечением0, программным обеспечением1, программным обеспечением2 в качестве идентификатора кода работать. квадратные скобки вызывают вопрос

или вы можете использовать вытекания квадратных скобок

$('#software\\['+m+'\\]') 
+0

Получил это. Изменено для программного обеспечения 1, программного обеспечения 2 и т. Д. И селектора - $ ('# software -' + m). Проблема решена. –

2

[XXX] означает селектор атрибутов, поэтому вам необходимо избегать открывающих и закрывающих скобок в идентификаторе.

$('#software\\['+m+'\\]') 

Это объясняется в верхней части selectors documentation page.

+0

Спасибо, Изменен формат от 'программного обеспечения [0]' до 'программного обеспечения-0' и переключил идентификатор в класс (из-за вероятности повторения). Теперь это работает как шарм! Большое спасибо. –