2010-09-02 23 views

Respuesta

17

Utilizando una función de filtro puede filtrar en base a cualquier criterio que desea:

var spans = $("span").filter(function(idx) { 
    return this.innerHTML.indexOf(myString) == 0; 
}); 
+4

No hay necesidad de ajustar cosas :) 'this.innerHTML' funciona, y es mucho menos costoso también. –

+0

right-o Nick, gracias. – joshperry

0

Se podría hacer algo como esto:

<!doctype HTML> 
<html> 
<head> 
<script type = "text/javascript" language = "JavaScript" src = "jquery-1.4.2.min.js"></script> 
<script type = "text/javascript" language = "JavaScript"> 
var elems; 
$(document).ready(function(){ 
    $("div").each(function(){ 
     var content = $(this).html(); 
     if (content.match(/asdf/)){ 
      alert(content); 
     } 
    }); 
}); 
</script> 
</head> 
<body> 
<div>asdfaowhguiwehgiuh</div> 
<div>asdfaowhguiwehgiuh</div> 
<div>fdsaaowhguiwehgiuh</div> 
<div>fdsaaowhguiwehgiuh</div> 
<div>fdsaaowhguiwehgiuh</div> 
<div>asdfaowhguiwehgiuh</div> 
</body> 
</html> 

el fin de encontrar ya sea en el contenido en absoluto ... si quieres los primeros personajes debes dividir el contenido en esos personajes y probarlo solo.

1

El método de filtro le permitirá comparar el contenido de un elemento, y luego puede hacer lo que quiera (en este caso, he hecho addClass('selected')).

$('p').filter(function() { 
    var searchString = 'Blue'; 
    return ($(this).html().substring(0, searchString.length) == searchString); 
}).addClass('selected'); 

Demostración:

http://jsbin.com/ironi/2

9

sé que esto es viejo, pero si alguien está buscando una mejor respuesta, jQuery desde v1.1.4 tiene un ":contains("text")" selector.

Ejemplo HTML:

<p>Please reply above this line...</p> 

Ejemplo jQuery selecciona por encima de HTML:

$('p:contains("Please reply above this line")'); 
+0

Me encanta encontrar estas soluciones más fáciles (a simple vista) en publicaciones más antiguas. Este es semánticamente más fácil de entender. – Sablefoste

+1

La pregunta indica que el OP tiene conocimiento de ': contains', pero necesita algo para filtrar basándose en el comienzo de la cadena innerHTML. Por lo tanto, @joshperry tiene la solución correcta. –

Cuestiones relacionadas