Không, không có bộ chọn jQuery (hoặc CSS) nào thực hiện điều đó.
Bạn có thể dễ dàng sử dụng filter
:
$("p").filter(function() {
return $(this).text() === "hello";
}).css("font-weight", "bold");
Nó không phải là một bộ chọn , nhưng nó thực hiện công việc. :-)
Nếu bạn muốn xử lý khoảng trắng trước hoặc sau "xin chào", bạn có thể ném $.trim
vào đó:
return $.trim($(this).text()) === "hello";
Đối với các trình tối ưu hóa sớm ngoài kia, nếu bạn không quan tâm rằng nó không khớp <p><span>hello</span></p>
và tương tự, bạn có thể tránh các cuộc gọi đến $
và text
bằng cách sử dụng innerHTML
trực tiếp:
return this.innerHTML === "hello";
... nhưng bạn phải có rất nhiều đoạn cho nó có vấn đề, rất nhiều điều mà trước tiên bạn có thể có vấn đề khác. :-)
:contains
bộ chọn bằng mã của riêng bạn, nhưng tôi không cho rằng đó là ý bạn?