Existe um selector
que eu possa consultar elementos com um ID que termine com uma determinada string?
Digamos que eu tenha um elemento com um ID de ctl00$ContentBody$txtTitle
. Como posso conseguir isso passando apenas txtTitle
?
jquery
jquery-selectors
Josh Stodola
fonte
fonte
ClientIDMode=static
a partir ASP.Net 4.0 em diante e se livrar deste :)Respostas:
Se você conhece o tipo de elemento, então: (por exemplo: substitua 'elemento' por 'div')
Se você não conhece o tipo de elemento:
Mais informações disponíveis
Mostrar snippet de código
fonte
document.getElementById("f:fTest:j_idt51:0:inpTest")
. Isso não acontece$("[id$='inpTest']")
. É porque dois pontos não são permitidos no ID (mas o JSF adiciona!)?A resposta para a pergunta é
$("[id$='txtTitle']")
, como Mark Hurd respondeu , mas para quem, como eu, deseja encontrar todos os elementos com um ID que comece com uma determinada string (por exemplo, txtTitle), tente o seguinte ( doc ):Se você deseja selecionar elementos cujo id contém uma determinada string ( doc ):
Se você deseja selecionar elementos cujo ID não é uma determinada string ( doc ):
(também corresponde aos elementos que não têm o atributo especificado)
Se você deseja selecionar elementos cujo ID contém uma determinada palavra, delimitada por espaços ( doc ):
Se você deseja selecionar elementos cujo id é igual a uma determinada string ou começa com essa string seguida por um hífen ( doc ):
fonte
Tentar
editar: 4 segundos atrasado: P
fonte
Não é estritamente necessário citar o fragmento de texto com o qual você está correspondendo
fonte
É mais seguro adicionar o sublinhado ou $ ao termo que você está procurando, por isso é menos provável que corresponda a outros elementos que terminam no mesmo ID:
(onde elemento é o tipo de elemento que você está tentando encontrar - por exemplo
div
,input
etc.(Observe que você está sugerindo que seus IDs tendem a ter sinais $, mas acho que o .NET 2 agora tende a usar sublinhados no ID; portanto, meu exemplo usa um sublinhado).
fonte
Um exemplo: para selecionar todos os
<a>
s com ID que termina em _edit:ou
fonte
Como esse é o ASP.NET, você pode simplesmente usar a tag ASP <% =%> para imprimir o ClientID gerado do txtTitle:
Isso resultará em ...
... quando a página é renderizada.
Nota: No Visual Studio, o Intellisense gritará com você por colocar tags ASP em JavaScript. Você pode ignorar isso, pois o resultado é JavaScript válido.
fonte
'ctl00$ContentBody$txtTitle'
, ele tem'txtTitle'
, e você está perdendo o líder#
para corresponder a um ID. Mas o OP já rejeitou uma sugestão semelhante (desde que excluída): Isso não funcionará, a menos que eu coloque meu Javascript diretamente na marcação, que é um pesadelo organizacional. A separação comportamental é crucial para este projeto.Tente o seguinte:
fonte
Para encontrar um ID de iframe que termina com "iFrame" em uma página que contém muitos iframes.
fonte