2010-12-29 33 views
23

Giả sử tôi có điều này:jquery: kiểm tra xem chuỗi tồn tại yếu tố, trở về boolean

<div id="elementId">bla bla bla some text bla bla</div>

tôi muốn kiểm tra xem div văn bản này chứa 'một số văn bản', sau đó trở thành sự thật, nếu không trả về false, làm thế nào để làm điều đó?

+0

Bạn có nghĩa là nếu nó chứa chuỗi "một số văn bản" hoặc chỉ một số văn bản? – Aerus

+0

@Aerus Có dấu ngoặc kép xung quanh các từ "một số văn bản" trong câu hỏi. –

+1

@ Jacob ok, tôi đã nhầm lẫn vì câu trả lời của bạn kiểm tra "bla" thay vì "một số văn bản" – Aerus

Trả lời

33
var isContains = $('#elementId').text().indexOf('some text') > -1; 
7

Bạn có thể sử dụng bộ chọn :contains() và kiểm tra .length để xem nếu nó phù hợp với bất cứ điều gì, như thế này:

return $("#elementId:contains('some text')").length > 0; 
+1

@Nick Tại sao lại sử dụng điều này khi bạn có thể sử dụng các phương thức JS gốc? –

+0

@ Jacob - Tôi không làm theo, vì khi nào là '$()' và '.text()' các phương thức JS nguyên gốc? ': contains()' gọi cùng một thứ bên dưới. –

+0

@Jacob - chỉ cần lưu ý điều gì đó, '.TextText' sẽ không hoạt động trong Firefox :) http://www.quirksmode.org/dom/w3c_html.html#t04 –

2

tôi đã sử dụng cùng một cách của bạn trên ...:

if($('#div_searched').text().indexOf('bla') != -1)

Điều này sẽ trở lại đúng khi tìm thấy từ bla trên div_searched

0

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

return $("#elementId:contains('some text')").length ? true : false; 

Nó sẽ trả về true nếu độ dài lớn hơn 0, nếu không nó sẽ trả về false.

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