2012-02-24 25 views

Trả lời

73

http://api.jquery.com/contains-selector/

$("span:contains('FIND ME')") 

ETA:

chứa selector là tốt đẹp, nhưng lọc một danh sách các nhịp nếu có thể nhanh hơn: 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 
+2

có trả lời câu hỏi tiếp theo của tôi không? http://stackoverflow.com/questions/9424509/how-do-i-select-a-span-containing-an-exact-text-value-using-jquery – MedicineMan

+0

Có. Bộ lọc là câu trả lời một lần nữa, nhưng lần này bạn kiểm tra toàn bộ giá trị .text() cho một trận đấu thay vì tìm kiếm chỉ mục. Đã cập nhật câu trả lời. – Malk

+0

Cảm ơn Malk! Tôi đã không nghe nói về bộ lọc(). Đôi khi nó là cần thiết như chứa() là một so sánh ký tự đại diện như vậy sẽ tìm thấy 'TÌM ME' và 'KHÔNG TÌM ME' mà không phải là hữu ích nếu bạn cần một trận đấu chính xác – Peadar

9

Sử dụng contains:

$("span:contains('FIND ME')") 
2

Tôi nghĩ rằng điều này sẽ làm việc

var span; 
$('span').each(function(){ 
    if($(this).html() == 'FIND ME'){ 
    span = $(this); 
    } 
}); 
+1

Oh yeah. Những câu trả lời khác tốt hơn nhiều. Sử dụng chúng. – buck54321

1

Bằng cách này, nếu bạn muốn sử dụng điều này với một biến, bạn muốn làm điều đó theo cách này:

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 
     }); 
    } 
} 
Các vấn đề liên quan