2010-09-02 15 views

Odpowiedz

17

Korzystanie z funkcji filtrowania można filtrować na podstawie dowolnych kryteriów, które chcesz:

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

Nie trzeba owijać rzeczy :) 'this.innerHTML' działa, i jest znacznie tańszy. –

+0

right-o Nick, dzięki. – joshperry

0

Można zrobić coś takiego:

<!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> 

W celu znalezienia czy to w treść w ogóle ... jeśli chcesz mieć kilka pierwszych znaków, powinieneś podzielić zawartość na te postacie i przetestować je.

1

Metoda filtrowania pozwala porównać zawartość elementu, a następnie można zrobić, co się chce (w tym przypadku zrobiłem addClass('selected')).

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

Demo:

http://jsbin.com/ironi/2

9

wiem, że to jest stary, ale jeśli ktoś szuka lepszej odpowiedzi, ponieważ jQuery v1.1.4 ma ":contains("text")" selector.

Przykład HTML:

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

Przykład jQuery wybiera powyżej HTML:

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

Uwielbiam znajdować te łatwiejsze (na oko, tak) rozwiązania w starszych postach. Ten jest semantycznie łatwiejszy do zrozumienia. – Sablefoste

+1

Pytanie mówi, że OP ma świadomość, że ': zawiera', ale potrzebuje czegoś do przefiltrowania w oparciu o początek ciągu innerHTML. Dlatego @joshperry ma prawidłowe rozwiązanie. –

Powiązane problemy