jQuery Selector: Id kończy się na?

Czy istnieje selector, które mogę odpytywać o elementy o ID, które kończą się podanym ciągiem znaków?

Powiedzmy, że mam element o id ctl00$ContentBody$txtTitle. Jak mogę to zdobyć przechodząc po prostu txtTitle?

Author: raBne, 2009-03-04

9 answers

Jeśli znasz typ elementu to: (np: zamień "element" na "div")

$("element[id$='txtTitle']")

Jeśli nie znasz typu elementu:

$("[id$='txtTitle']")

Więcej informacji


// the old way, needs exact ID: document.getElementById("hi").value = "kk";
$(function() {
  $("[id$='txtTitle']").val("zz");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="ctl_blabla_txtTitle" type="text" />
 570
Author: Mark Hurd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-26 13:02:04

Odpowiedź na pytanie brzmi $("[id$='txtTitle']"), Jak odpowiedział Mark Hurd , ale dla tych, którzy, tak jak ja, chcą znaleźć wszystkie elementy o id, które zaczyna się od danego ciągu (na przykład txtTitle), spróbuj tego ( doc) :

$("[id^='txtTitle']")

Jeśli chcesz wybrać elementy, które id zawiera podany łańcuch (doc) :

$("[id*='txtTitle']")

Jeśli chcesz wybrać elementy, których id nie jest podany łańcuch (doc) :

$("[id!='myValue']")

(to także dopasowuje elementy, które nie mają określonego atrybutu)

Jeśli chcesz wybrać elementy, które id zawiera dane słowo, rozdzielone spacjami (doc) :

$("[id~='myValue']")

Jeśli chcesz wybrać elementy, których id jest równe danemu łańcuchowi lub zaczynające się od tego łańcucha, po którym następuje myślnik (doc) :

$("[id|='myValue']")
 232
Author: Romain Guidoux,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:32

Try

$("element[id$='txtTitle']");

Edit: 4 seconds late: P

 31
Author: kkyy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-04 06:06:46
$('element[id$=txtTitle]')

Nie jest konieczne cytowanie fragmentu tekstu, który pasujesz do

 29
Author: Scott Evernden,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-20 14:50:46

Bezpieczniej jest dodać podkreślenie lub $ do szukanego wyrażenia, więc jest mniej prawdopodobne, że pasuje do innych elementów, które kończą się tym samym ID:

$("element[id$=_txtTitle]")

(Gdzie element jest typem elementu, który próbujesz znaleźć-np. div, input itd.

(Uwaga, sugerujesz, że Twoje identyfikatory mają zwykle znaki$, ale myślę, że. NET 2 używa teraz podkreślników w ID, więc mój przykład używa podkreślnika).

 13
Author: Nick Gilbert,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-29 16:01:59

Przykład: aby wybrać wszystkie <a> s z ID zakończonym _edit:

jQuery("a[id$=_edit]")

Lub

jQuery("a[id$='_edit']")
 3
Author: Anton K,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-22 08:24:26

Ponieważ jest to ASP.NET możesz po prostu użyć znacznika ASP, aby wydrukować wygenerowany identyfikator klienta txtTitle:

$('<%= txtTitle.ClientID %>')

To spowoduje...

$('ctl00$ContentBody$txtTitle')

... kiedy strona jest renderowana.

Uwaga: w Visual Studio Intellisense będzie krzyczeć na Ciebie za umieszczanie znaczników ASP w JavaScript. Możesz to zignorować, ponieważ wynikiem jest poprawny JavaScript.

 3
Author: Michael,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-19 15:27:42

Spróbuj tego:

<asp:HiddenField ID="0858674_h" Value="0" runat="server" />

var test = $(this).find('[id*="_h"').val();
 1
Author: pawel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-09 11:46:21

W celu znalezienia id ramki iframe kończącego się "iFrame" na stronie zawierającej wiele ramek iFrame.

jQuery(document).ready(function (){     
                  jQuery("iframe").each(function(){                     
                    if( jQuery(this).attr('id').match(/_iFrame/) ) {
                            alert(jQuery(this).attr('id'));

                     }                   
                  });     
         });
 0
Author: neelmeg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-06 20:32:43