Encontre todos os elementos em uma página cujo ID do elemento contenha um determinado texto usando jQuery


Respostas:


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

Observe que o asterisco '*' no início do seletor corresponde a todos os elementos .

Consulte o Atributo contém seletores , bem como os seletores : visible e : hidden .


17
Talvez valha a pena mencionar que ao fazer a correspondência com um elemento, idvocê não usa aspas, enquanto que ao fazer a correspondência com um elemento, namevocê faz. $('*[name*="myname"]:visible') Não é o mais intuitivo e já me alcançou antes.
Ficção Científica #

Substituí $ (this) .doStuff (); com this.doStuff (); e trabalhou
Carlos López Marí

133

Se você encontrar por Contains , será assim

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

Se você encontrar pela Starts With , será assim

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

Se você encontrar pelo Ends With , será assim

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

Se você deseja selecionar elementos cujo id não é uma determinada string

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

Se você deseja selecionar elementos cujo nome contenha uma determinada palavra, delimitada por espaços

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

Se você deseja selecionar elementos cujo id é igual a uma determinada string ou começa com essa string seguida por um hífen

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

Olá, como posso usar um seletor para selecionar os elementos cujo ID pertence a uma matriz.
Bpa.mdl 17/05/19

20

Isso seleciona todos os DIVs com um ID contendo 'foo' e que são visíveis

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

Se estou procurando elementos da caixa de texto em vez de divs, é simplesmente $ ("input: visible [id * = 'foo']"); ?
user48408

seria $ ("input [type = 'textbox'] [id * = 'foo']: visible") #
karim79

1
@ porto de zero - as aspas simples 'foo' não são necessárias
karim79

se você está tentando obter o valor dos elementos (no meu caso se estende), você deve obter$(this)[0].innerText
Niklas

6

Graças a vocês dois. Isso funcionou perfeitamente para mim.

$("input[type='text'][id*=" + strID + "]:visible").each(function() {
    this.value=strVal;
});
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.