Reputation: 15314
How do I find the span containing the text "FIND ME"
<div>
<span>FIND ME</span>
<span>dont find me</span>
</div>
Upvotes: 75
Views: 141011
Reputation: 187
By the way, if you'd like to use this with a variable, you'd do it this way:
function findText() {
$('span').css('border', 'none'); //reset all of the spans to no border
var find = $('#txtFind').val(); //where txtFind is a simple text input for your search value
if (find != null && find.length > 0) {
//search every span for this content
$("span:contains(" + find + ")").each(function () {
$(this).css('border', 'solid 2px red'); //mark the content
});
}
}
Upvotes: 4
Reputation: 11983
http://api.jquery.com/contains-selector/
$("span:contains('FIND ME')")
ETA:
The contains selector is nice, but filtering a list of spans if probably quicker: http://jsperf.com/jquery-contains-vs-filter
$("span").filter(function() { return ($(this).text().indexOf('FIND ME') > -1) }); -- anywhere match
$("span").filter(function() { return ($(this).text() === 'FIND ME') }); -- exact match
Upvotes: 143
Reputation: 847
I think this will work
var span;
$('span').each(function(){
if($(this).html() == 'FIND ME'){
span = $(this);
}
});
Upvotes: 3