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?

War es hilfreich?

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 zitieren

Es 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'));

                     }                   
                  });     
         });
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top