Czy istnieje selector
możliwość zapytania o elementy o identyfikatorze kończącym się danym ciągiem?
Powiedz, że mam element o identyfikatorze ctl00$ContentBody$txtTitle
. Jak mogę to uzyskać, przekazując tylko txtTitle
?
jquery
jquery-selectors
Josh Stodola
źródło
źródło
ClientIDMode=static
od ASP.Net 4.0 i pozbądź się tego :)Odpowiedzi:
Jeśli znasz typ elementu, to: (np .: zamień „element” na „div”)
Jeśli nie znasz typu elementu:
Więcej informacji dostępnych
Pokaż fragment kodu
źródło
document.getElementById("f:fTest:j_idt51:0:inpTest")
. To nie robi$("[id$='inpTest']")
. Czy to dlatego, że dwukropek nie jest dozwolony w ID (ale dodaje go JSF!)?Odpowiedź na pytanie brzmi
$("[id$='txtTitle']")
, jak odpowiedział Mark Hurd , ale dla tych, którzy, podobnie jak ja, chcą znaleźć wszystkie elementy o identyfikatorze rozpoczynającym się od określonego ciągu (na przykład txtTitle), wypróbuj to ( doc ):Jeśli chcesz wybrać elementy, których identyfikator zawiera podany ciąg ( dokument ):
Jeśli chcesz wybrać elementy, których identyfikator nie jest podanym łańcuchem ( dokument ):
(pasuje również do elementów, które nie mają określonego atrybutu)
Jeśli chcesz wybrać elementy, których identyfikator zawiera dane słowo, oddzielone spacjami ( doc ):
Jeśli chcesz wybrać elementy, których identyfikator jest równy podanemu ciągowi lub zaczynając od tego ciągu, po którym następuje myślnik ( doc ):
źródło
Próbować
edycja: opóźnienie 4 sekundy: P.
źródło
Cytowanie fragmentu tekstu, do którego pasujesz, nie jest absolutnie konieczne
źródło
Bezpieczniej jest dodać podkreślenie lub $ do wyszukiwanego terminu, więc mniej prawdopodobne jest dopasowanie innych elementów, które kończą się tym samym identyfikatorem:
(gdzie elementem jest rodzaj elementu starasz się znaleźć - na przykład
div
,input
itd.(Uwaga, sugerujesz, że twoje identyfikatory mają na ogół znaki $, ale myślę, że .NET 2 używa teraz w podkreśleniu identyfikatorów, więc mój przykład używa podkreślenia).
źródło
Przykład: aby wybrać wszystkie
<a>
s z identyfikatorem kończącym się na _edit:lub
źródło
Ponieważ jest to ASP.NET, możesz po prostu użyć znacznika ASP <% =%>, aby wydrukować wygenerowany identyfikator klienta txtTitle:
Spowoduje to ...
... gdy strona jest renderowana.
Uwaga: w Visual Studio Intellisense będzie krzyczeć na ciebie za umieszczenie znaczników ASP w JavaScript. Możesz to zignorować, ponieważ wynikiem jest poprawny JavaScript.
źródło
'ctl00$ContentBody$txtTitle'
, on ma'txtTitle'
, a brakuje ci wiodącej pozycji,#
by dopasować identyfikator. Ale OP już odrzucił podobną sugestię (ponieważ została usunięta): To nie zadziała, dopóki nie wstawię mojego Javascript bezpośrednio w znacznikach, co jest koszmarem organizacyjnym. Separacja behawioralna ma kluczowe znaczenie dla tego projektu.Spróbuj tego:
źródło
Aby znaleźć identyfikator iframe kończący się na „iFrame” na stronie zawierającej wiele iframe.
źródło