Ответ 1
Напишите свою собственную функцию filter
:
$("div.fc-day-number").filter(function (){
return $(this).text() == day;
}).parent().parent().css({ 'background-color': 'Green' });
Я делаю проект с fullcalendar, и мне нужно выбрать элемент на основе числа дней. Вот пример элемента, который мне нужно выбрать:
<div class="fc-day-number">1</div>
Вот javascript, который я написал:
$("div.fc-day-number:contains(" + day + ")").parent().parent().css({ 'background-color': 'Green' });
Это захватит все div, чей внутренний текст содержит переменную дня, проблема в том, что если день == 1, то он также выбирает 11,12,13,21,31 и т.д. Как написать селектор JQuery, который будет захватывать divs с классом "fc-day-number" и чей внутренний текст точно равен день?
Напишите свою собственную функцию filter
:
$("div.fc-day-number").filter(function (){
return $(this).text() == day;
}).parent().parent().css({ 'background-color': 'Green' });
$("div.fc-day-number").each(function (){
if($(this).text()==day)
{
$(this).css({ 'background-color': 'Green' });
}
});
jQuery.expr[":"].text = jQuery.expr.createPseudo(function(arg)
{
return function( elem ) {
return jQuery(elem).text().toLowerCase() == arg;
};
});
Этот код добавит новый псевдоселектор, который будет фильтровать элементы внутреннего текста, который не равен arg. Для примера используйте здесь так:
$("div.fc-day-number:text(" + day + ")").parent().parent().css({ 'background-color': 'Green' });