2014-10-24 4 views
0

Я не могу понять, почему класс не добавляется к выбранному элементу td.Класс не добавляется к элементу

Пример даты ячейки в JQuery DatePicker таблице ...

<td class=" " data-handler="selectDay" data-event="click" data-month="9" data-year="2014"> 
    <a class="ui-state-default" href="#">1</a> 
</td> 

То, что я пытаюсь с JQuery ...

<script> 

    var dateList = [ 1, 10, 2014 ]; 

    $("td[data-month='" + dateList[1] + "'][data-year='" + dateList[2] + "']") 
     .filter(function() { 
      return $(this).text() === dateList[0]; 
     }).addClass("cal-selected-date"); 

</script> 

Любые советы? Благодарю.

+0

Добавлено Возврат к $ (это) .text() === DateList [0 ]; – user3442612

ответ

2

вам нужно вернуть результат в filter:

return $(this).trim() === dateList[0]; 

EDIT:

Поскольку вы не выбирая a но td вместо этого, вы также должны добавьте .trim(), чтобы обрезать пробелы. И последнее, но не в последнюю очередь вам необходимо либо преобразовать как номер или удалить один =

return $(this).text().trim() == dateList[0]; 

или

return Number($(this).text().trim()) === dateList[0]; 
+0

Спасибо, но он все еще не работает с возвратом. – user3442612

+0

Ну, используя ваш пример кода, я не вижу ничего другого, кроме этого, чем этот «data-month» равен 9 в вашем html и 10 в массиве, но поскольку это просто пример, который не может иметь к этому никакого отношения. –

+0

Хорошо заметили - DatePicker должен индексироваться на 0, но я прокрутил к следующему месяцу, и у него все еще не было добавленного класса. – user3442612

1

return Вы пропустили

$("td[data-month='" + dateList[1] + "'][data-month='" + dateList[2] + "']") 
    .filter(function() {    
     return $(this).text() === dateList[0]; 
    }).addClass("cal-selected-date"); 

В качестве альтернативы вы можете использовать. data() фильтр

$("td") 
    .filter(function() { 
     return 
      $(this).data('month') == dateList[1] && 
      $(this).data('year') == dateList[2] && 
      +$(this).text() === dateList[0]; //Convert text to number using + 
    }).addClass("cal-selected-date"); 
+0

Мне понравился альтернативный пример, но, к сожалению, он не работает. – user3442612

+0

Спасибо, я получил ваш пример кода, но проблема, похоже, связана с jQuery DatePicker. Помечено как разрешено. Спасибо за вашу помощь :) – user3442612

Смежные вопросы