Tìm tất cả các phần tử trên một trang có ID phần tử chứa một văn bản nhất định bằng jQuery


130

Tôi đang cố gắng tìm tất cả các thành phần trên một trang có ID phần tử chứa một văn bản nhất định. Sau đó, tôi sẽ cần lọc các yếu tố tìm thấy dựa trên việc chúng có bị ẩn hay không. Bất kỳ trợ giúp nào cũng được đánh giá rất cao.


Câu trả lời:


201
$('*[id*=mytext]:visible').each(function() {
    $(this).doStuff();
});

Lưu ý dấu hoa thị '*' ở đầu bộ chọn khớp với tất cả các yếu tố .

Xem các thuộc tính chứa Selectors , cũng như : nhìn thấy được: ẩn selectors.


17
Có lẽ đáng nói đến khi kết hợp với một yếu tố, idbạn không sử dụng dấu ngoặc kép, khi kết hợp với yếu tố namebạn làm. $('*[name*="myname"]:visible') Không trực quan nhất và đã bắt kịp tôi trước đây.
ficuscr

Tôi đã thay thế $ (này) .doStuff (); với this.doStuff (); và đã làm việc
Carlos López Marí

133

Nếu bạn đang tìm kiếm bởi Chứa thì nó sẽ như thế này

    $("input[id*='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

Nếu bạn đang tìm kiếm bằng Bắt đầu với thì nó sẽ như thế này

    $("input[id^='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

Nếu bạn đang tìm kiếm bằng Ends With thì nó sẽ như thế này

     $("input[id$='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

Nếu bạn muốn chọn các phần tử mà id không phải là một chuỗi đã cho

    $("input[id!='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

Nếu bạn muốn chọn các thành phần mà tên chứa một từ nhất định, được phân cách bằng dấu cách

     $("input[name~='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

Nếu bạn muốn chọn các phần tử mà id bằng một chuỗi đã cho hoặc bắt đầu bằng chuỗi đó theo sau là dấu gạch nối

     $("input[id|='DiscountType']").each(function (i, el) {
         //It'll be an array of elements
     });

Xin chào, làm thế nào tôi có thể sử dụng bộ chọn để chọn những phần tử có id thuộc về một mảng.
bpa.mdl

20

Thao tác này sẽ chọn tất cả các DIV có ID chứa 'foo' và có thể nhìn thấy

$("div:visible[id*='foo']");

Nếu tôi đang tìm kiếm các phần tử của hộp văn bản chứ không phải div, thì nó chỉ đơn giản là $ ("input: thấy [id * = 'foo']"); ?
dùng48408

nó sẽ là $ ("input [type = 'textbox'] [id * = 'foo']: hiển thị")
karim79

1
@ port-zero - không cần trích dẫn duy nhất xung quanh 'foo'
karim79

nếu bạn đang cố gắng để có được giá trị của các yếu tố (trong trường hợp của tôi kéo dài), bạn phải có được$(this)[0].innerText
Niklas

6

Cám ơn hai bạn. Điều này làm việc hoàn hảo cho tôi.

$("input[type='text'][id*=" + strID + "]:visible").each(function() {
    this.value=strVal;
});
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.