2012-04-26 38 views
12
$('.test').css('background','red'); 

<div id="example">Some text</div> 

Làm thế nào tôi có thể .addClass('test') nếu #example chứa từ "văn bản"?Nếu phần tử chứa văn bản nhất định

+0

Bạn đã làm gì cố gắng? Thành thật mà nói, điều này có vẻ giống như việc sử dụng API jQuery thực sự, thực sự đơn giản. –

+0

** 1. ** Đặt câu hỏi gọn gàng, thêm "jquery" trước nó. "jquery nếu phần tử chứa văn bản nhất định" ** 2. ** Truy cập google và chạy tìm kiếm. – Joonas

Trả lời

16

chỉ cần sử dụng :contains pseudoclass

$('#example:contains("text")').addClass('test'); 

này sẽ bổ sung thêm các lớp học để #example nếu nó có chứa 'text'

+0

Hoàn hảo, cảm ơn! – UserIsCorrupt

6

Bạn có thể sử dụng $("#example") để có được một wrapper jQuery cho nguyên tố này, sau đó sử dụng text() để có được văn bản của nó và sử dụng String#indexOf, ví dụ:

var ex = $("#example"); 
if (ex.text().indexOf("text") !== -1) { 
    ex.addClass("test"); 
} 

Bạn cũng có thể sử dụng :contains("text") trong bộ chọn là F. Calderan shows, mặc dù lưu ý rằng khi bạn sử dụng bộ chọn giả không chuẩn như vậy, jQuery không thể sử dụng công cụ được tích hợp sẵn của trình duyệt để tìm các phần tử, vì vậy nó có thể chậm hơn. Ở trên sẽ cho phép jQuery sử dụng document.getElementById. Tuy nhiên, chỉ có một vài tình huống mà tốc độ thực sự quan trọng.

1

thử đoạn mã sau

$('#example:contains("text")').addClass('test'); 

Có một cái nhìn here cho ví dụ và giải thích của :contains selector

+0

Tôi nghĩ rằng thử nghiệm bên trong chứa phải là văn bản. – Zafer

+0

@Zafer Typo, cảm ơn đã sắp xếp! :) –

Các vấn đề liên quan