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.
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.
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 .
id
nie używasz cudzysłowów, podczas gdy podczas dopasowywania do elementu name
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
});
Spowoduje to zaznaczenie wszystkich DIV z identyfikatorem zawierającym „foo” i które są widoczne
$("div:visible[id*='foo']");
$(this)[0].innerText