Проблема с регулярным выражением Slector - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть веб-страница с календарем. У меня есть div с днями. Пример.

<div id="zabuto_calendar_smu_2020-04-29_day" class="day">29</div>

Как выбрать текущую дату? У меня текущая дата в переменной даты, и мне нужно выбрать текущую дату, но не все. У меня есть 3 точки, потому что есть случайная строка. Я попытался:

$(".day").filter(function () {
    return $(this).attr('id').match('zabuto_calendar_..._' + date + '_day');
}).click();

, но это не работает. Может ли один и тот же помочь мне?

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

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

$('[id^="zabuto_calendar_"][id$="_' + date '_day"].day').....

Это выберет только один элемент div, при условии, что для каждой даты есть один div, и нет необходимости использовать метод .filter().

let date = '2020-04-30';
$('[id^="zabuto_calendar_"][id$="_' + date + '_day"].day').addClass('highlight');
.highlight {
    background-color:#FFFF00;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="zabuto_calendar_smu_2020-04-29_day" class="day">29</div>
<div id="zabuto_calendar_smu_2020-04-30_day" class="day">30</div>
<div id="zabuto_calendar_smuxx_2020-05-01_day" class="day">03</div>
<div id="zabuto_calendar_smuxy_2020-05-02_day" class="day">02</div>
0 голосов
/ 27 апреля 2020
var match =  $(this).attr('id').match(/zabuto_calendar_smu_(.+)_day/i);
console.log(match[1]);

в качестве альтернативы

var match =  str.match(/_([20|19].+)_day/i);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...