Знайдіть усі елементи на сторінці, ідентифікатор елемента містить певний текст за допомогою jQuery


130

Я намагаюся знайти всі елементи на сторінці, ідентифікатор елемента якого містить певний текст. Потім мені потрібно буде відфільтрувати знайдені елементи на основі того, приховані вони чи ні. Будь-яка допомога дуже цінується.


Відповіді:


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

Зверніть увагу, що зірочка '*' на початку селектора відповідає всім елементам .

Див. Атрибут містить селектори , а також : видимі та : приховані селектори.


17
Можливо, варто згадати, що при зіставленні з елементами idви не використовуєте лапки, де при зіставленні з nameвами. $('*[name*="myname"]:visible') Не найінтуїтивніший і раніше мене наздогнав.
ficuscr

Я замінив $ (this) .doStuff (); з цим.doStuff (); і працював
Карлос Лопес Марі

133

Якщо ви знайдете компанію Contains, то буде так

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

Якщо ви знайдете по Starts With, то буде так

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

Якщо ви знайдете « Закінчується з», то це буде так

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

Якщо ви хочете вибрати елементи, ідентифікатор яких не є заданим рядком

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

Якщо ви хочете вибрати елементи, ім'я яких містить задане слово, розділене пробілами

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

Якщо ви хочете вибрати елементи, ідентифікатор яких дорівнює заданій рядку, або починаючи з цього рядка, а потім дефісом

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

Привіт, як я можу використовувати селектор для вибору тих елементів, ідентифікатор яких належить до масиву.
bpa.mdl

20

Це вибирає всі DIV з ідентифікатором, що містить "foo", і які є видимими

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

Якщо я шукаю елементи текстового поля, а не діви, це просто $ ("input: visible [id * = 'foo']"); ?
user48408

це буде $ ("input [type = 'textbox'] [id * = 'foo']: видимий")
karim79

1
@ port-zero - єдині цитати навколо "foo" не потрібні
karim79

якщо ви намагаєтеся отримати значення елементів (у моєму випадку прольотів), вам доведеться отримати$(this)[0].innerText
Niklas

6

Дякую обом. Це прекрасно працювало для мене.

$("input[type='text'][id*=" + strID + "]:visible").each(function() {
    this.value=strVal;
});
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.