jQuery Selector: ID endet mit?
-
03-07-2019 - |
Frage
Gibt es eine selector
, die ich für Elemente mit einem ID abfragen kann, die mit einer bestimmten Zeichenkette endet?
Sagen, dass ich ein Element mit einer ID von ctl00$ContentBody$txtTitle
habe. Wie kann ich diese erhalten, indem nur txtTitle
vorbei?
Lösung
Wenn Sie wissen, den Elementtyp dann: (zB: ersetzen 'Element' mit 'div')
$("element[id$='txtTitle']")
Wenn Sie nicht wissen, den Elementtyp:
$("[id$='txtTitle']")
Weitere Informationen verfügbar
// 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" />
Andere Tipps
Die Antwort auf die Frage ist $("[id$='txtTitle']")
, als Mark Hurd beantwortet, aber für diejenigen, die, wie ich, wollen finden Sie alle Elemente mit einer ID, die beginnt mit eine Zeichenkette (zB txtTitle), versuchen Sie diese ( doc ):
$("[id^='txtTitle']")
Wenn Sie Elemente auszuwählen, die id wollen enthält eine Zeichenkette ( doc ):
$("[id*='txtTitle']")
Wenn Sie Elemente auszuwählen, die id wollen, ist nicht eine Zeichenkette ( doc ):
$("[id!='myValue']")
(es passt auch die Elemente, die das angegebene Attribut nicht haben)
Wenn Sie Elemente auszuwählen, die id wollen enthält ein gegebenes Wort, durch Leerzeichen getrennt ( doc ):
$("[id~='myValue']")
Wenn Sie Elemente auszuwählen, die ID ist gleich einem gegebenen String oder beginnend mit dieser Zeichenfolge gefolgt von einem Bindestrich ( doc ):
$("[id|='myValue']")
Versuchen
$("element[id$='txtTitle']");
edit: 4 Sekunden spät: P
$('element[id$=txtTitle]')
Es ist nicht unbedingt notwendig, das Textfragment Sie passen gegen
zu zitierenEs ist sicherer, den Unterstrich oder $ auf den Begriff hinzuzufügen, um so die Sie suchen, es ist weniger wahrscheinlich, dass andere Elemente entsprechen, welches Ende in der gleichen ID:
$("element[id$=_txtTitle]")
(wobei -Element ist die Art von Element Sie versuchen zu finden -. ZB div
, input
etc
(Beachten Sie, Sie vorschlagen Ihre IDs sind typischerweise $ Zeichen in ihnen haben, aber ich denke, .NET 2 jetzt Unterstrichen zu verwenden, in der ID neigt statt, so dass mein Beispiel einen Unterstrich verwendet).
Ein Beispiel:
Alle <a>
s mit ID endend in _edit wählen:
jQuery("a[id$=_edit]")
oder
jQuery("a[id$='_edit']")
Da es sich um ASP.NET, können Sie einfach das ASP <% =%> Tag des erzeugten ClientID von txtTitle drucken:
$('<%= txtTitle.ClientID %>')
Dies führt in ...
$('ctl00$ContentBody$txtTitle')
... wenn die Seite gerendert wird.
Hinweis: In Visual Studio Intellisense bei Ihnen für die Umsetzung ASP-Tags in JavaScript schreien wird. Sie können dies ignorieren, da das Ergebnis gültig JavaScript ist.
Versuchen Sie folgendes:
<asp:HiddenField ID="0858674_h" Value="0" runat="server" />
var test = $(this).find('[id*="_h"').val();
Um einen iframe id mit der Endung „iFrame“ innerhalb einer Seite mit vielen iframes zu finden.
jQuery(document).ready(function (){
jQuery("iframe").each(function(){
if( jQuery(this).attr('id').match(/_iFrame/) ) {
alert(jQuery(this).attr('id'));
}
});
});