Ich bin neu in Javascript. Ich versuche diesen folgenden Code, um das href-Attribut zu erhalten.
<a href="facebook.com" onclick="cheak()">Facebook</a>
<script type="text/javascript">
function cheak()
{
var a= document.getElementsByTagName("a").getAttribute('href');
alert(a);
}
</script>
Ich weiß, dass dies mit dem folgenden Code funktioniert
document.getElementById("myid").getAttribute('href'); // if I use any id
Aber im Tag möchte ich keine ID oder Klasse verwenden. Wie kann ich dieses Attribut erhalten, ohne eine ID oder Klasse im Tag a
zu verwenden?
3 Antworten
Vorwort: Im Folgenden habe ich die Frage beantwortet, wie ein Element im allgemeinen Fall ohne Verwendung von id
oder class
gefunden werden kann. Wenn Sie das Element jedoch nur in Ihrer cheak
-Funktion verwenden möchten, ist Zains Antwort der richtige Weg das (mit minimalen Änderungen an Ihrem Code; wohl mehr korrekt könnte eine moderne Ereignisverbindung sein).
Aber im Tag möchte ich keine ID oder Klasse verwenden. Wie kann ich dieses Attribut erhalten, ohne
id
oderclass
ima
-Tag zu verwenden?
Sie greifen nach dem Schweizer Taschenmesser der Elementauswahl: document.querySelector
. Damit können Sie jeden CSS-Selektor verwenden, der dem Element entspricht:
var href = document.querySelector("any selector here").getAttribute("href");
querySelector
gibt die erste Übereinstimmung im Dokument zurück. (Es gibt auch querySelectorAll
, das eine Liste zurückgibt.) Beide werden in allen modernen Browsern und auch in IE8 unterstützt.
Da Sie über die volle Leistung von CSS-Selektoren verfügen, können Sie alles über die Position des Elements im Dokument verwenden, um es zu finden.
Ihre Frage enthält zu wenig Kontext für ein bestimmtes Beispiel, aber zum Beispiel, wenn es das erste a
im Dokument ist:
var href = document.querySelector("a").getAttribute("href");
alert(href);
<a href="facebook.com" onclick="cheak()">Facebook</a>
Oder mit diesem onclick
:
var href = document.querySelector("a[onclick='cheak()']").getAttribute("href");
alert(href);
<a href="facebook.com" onclick="cheak()">Facebook</a>
<a href="www.facebook.com" onclick="cheak(event)">Facebook</a>
<script type="text/javascript">
function cheak(e)
{
e.preventDefault();
// var a= document.getElementsByTagName("a").getAttribute('href');
alert(e.target);
}
</script>
Wenn Sie beim Aufrufen der Funktion this
übergeben. Es wird die Elementreferenz an Ihre Funktion übergeben und Sie können sie verwenden, um den Wert von href zu erhalten:
<a href="facebook.com" onclick="cheak(this)">Facebook</a>
<!-- Note -----------------------------^^^^ -->
<script type="text/javascript">
function cheak(a) {
alert(a.href); // Gives you the fully-resolved URL
alert(a.getAttribute("href")); // Gives you the content of the `href` attribute (not fully-resolved)
}
</script>
Der Parameter data
ist das vollständige Tag, für das die Funktion aufgerufen wird