2011-09-20 10 views
14

Estoy haciendo un proyecto con fullcalendar y necesito poder seleccionar un elemento basado en el número del día. Este es un ejemplo del elemento que necesito para seleccionar:JQuery seleccionar por el texto interno

<div class=​"fc-day-number">​1​</div>​ 

aquí es el código JavaScript que he escrito:

$("div.fc-day-number:contains(" + day + ")").parent().parent().css({ 'background-color': 'Green' }); 

Esto puede grabar todos los divs cuyo texto interno contiene la variable de días, el problema se si día == 1 entonces también selecciona 11,12,13,21,31, etc. ¿Cómo escribo un selector de JQuery que tomará los divs con la clase "fc-day-number" y cuyo texto interno es exactamente igual al día?

Respuesta

15

Escribe tu propia filter función:

$("div.fc-day-number").filter(function(){ 
    return $(this).text() == day; 
}).parent().parent().css({ 'background-color': 'Green' }); 
+1

Probablemente agregue $ (this) .text(). ToLowerCase() === day; –

+0

@Kris ¿Por qué? El OP solo usa números para que el caso no importe. También usé el doble igual porque pensé que el día sería numérico, mientras que 'text()' sería una cadena. – Dennis

+0

Oh, pensé que podría ser cualquier texto/cadena. –

3
$("div.fc-day-number").each(function(){ 
    if($(this).text()==day) 
    { 
     $(this).css({ 'background-color': 'Green' }); 
    } 
}); 
0
jQuery.expr[":"].text = jQuery.expr.createPseudo(function(arg) 
{ 
    return function(elem) { 
     return jQuery(elem).text().toLowerCase() == arg; 
    }; 
}); 

Este código se sumará la nueva pseudoselector que filtrará los elementos del texto interno que no es igual a arg. Para su ejemplo, use aquí de modo que:

$("div.fc-day-number:text(" + day + ")").parent().parent().css({ 'background-color': 'Green' }); 
+0

Aunque este código puede ayudar a resolver el problema, no explica _why_ y/o _how_ responde la pregunta. Proporcionar este contexto adicional mejoraría significativamente su valor educativo a largo plazo. Por favor [edite] su respuesta para agregar una explicación, incluyendo qué limitaciones y suposiciones se aplican. –

Cuestiones relacionadas