Próbuję znaleźć wszystkie elementy na stronie, której identyfikator elementu zawiera określony tekst. Następnie będę musiał przefiltrować znalezione elementy na podstawie tego, czy są ukryte, czy nie. Każda pomoc jest mile widziana.
136
Odpowiedzi:
$('*[id*=mytext]:visible').each(function() { $(this).doStuff(); });
Zauważ, że gwiazdka „*” na początku selektora pasuje do wszystkich elementów .
Zobacz Atrybut zawiera selektory , a także selektory : visible i : hidden .
źródło
id
nie używasz cudzysłowów, podczas gdy podczas dopasowywania do elementuname
tak.$('*[name*="myname"]:visible')
Nie jest najbardziej intuicyjny i już mnie dogonił.Jeśli wyszukujesz według Zawartości, to będzie tak
$("input[id*='DiscountType']").each(function (i, el) { //It'll be an array of elements });
Jeśli wyszukujesz według Rozpoczyna się od, to będzie tak
$("input[id^='DiscountType']").each(function (i, el) { //It'll be an array of elements });
Jeśli znajdujesz według Końcówki z, to będzie tak
$("input[id$='DiscountType']").each(function (i, el) { //It'll be an array of elements });
Jeśli chcesz wybrać elementy, których id nie jest podanym ciągiem
$("input[id!='DiscountType']").each(function (i, el) { //It'll be an array of elements });
Jeśli chcesz wybrać elementy, których nazwa zawiera dane słowo, rozdzielone spacjami
$("input[name~='DiscountType']").each(function (i, el) { //It'll be an array of elements });
Jeśli chcesz wybrać elementy, których id jest równe danemu napisowi lub zaczyna się od tego ciągu, po którym następuje łącznik
$("input[id|='DiscountType']").each(function (i, el) { //It'll be an array of elements });
źródło
Spowoduje to zaznaczenie wszystkich DIV z identyfikatorem zawierającym „foo” i które są widoczne
$("div:visible[id*='foo']");
źródło
$(this)[0].innerText
Dziękuję wam obojgu. To zadziałało idealnie dla mnie.
$("input[type='text'][id*=" + strID + "]:visible").each(function() { this.value=strVal; });
źródło