Ich versuche, den Text eines Ankertags zu ändern. Ich habe dies zuvor getan, indem ich auf den DIV abzielte, in dem er sich befindet, und dann auf das Ankertag innerhalb dieses DIV zielte. Aber ohne div oder zugewiesene ID auf dem Ankertag bin ich verloren. Folgendes habe ich bisher:

HTML:

<a href="#" class="small quality hide-forsmall" >Link Text</a>

JavaScript:

var anchor=document.getElementsByClassName("quality");
anchor.innerHTML="Changed Text";
0
Travis 6 Dez. 2013 im 00:48

4 Antworten

Beste Antwort

Um jedes der Elemente mit diesem bestimmten Klassennamen abzurufen, müssen Sie die Auflistung durchlaufen. Hier ist ein kurzes Beispiel:

http://jsfiddle.net/QU7Kv/1/

<a href="#" class="small quality hide-forsmall" >Link Text</a>


<script>
    (function (){
        var anchor=document.getElementsByClassName("quality");
        for(var i = 0; i < anchor.length; i++){
            anchor[i].innerHTML="Changed Text";
        };
     })()
</script>
3
Howard Renollet 5 Dez. 2013 im 20:57
document.getElementsByClassName("quality");

Die Methode getElementsByClassName gibt HTMLCollection zurück, keinen einzelnen Knoten. Wenn Sie auf das erste Ergebnis zugreifen möchten, versuchen Sie Folgendes:

var anchor = document.getElementsByClassName("quality")[0];
anchor.innerHTML = "Changed Text";

Weitere Informationen zu getElementsByClassName: https: // Entwickler. mozilla.org/en-US/docs/Web/API/document.getElementsByClassName

0
mdevils 5 Dez. 2013 im 20:54

document.getElementsByClassName wird zurückgegeben eine HtmlCollection von Elementen, die mit dem übereinstimmen Klassenname.

Um den ersten zu erhalten, verwenden Sie:

document.getElementsByClassName("quality")[0];

Um den Text in allen übereinstimmenden Elementen zu ändern, durchlaufen Sie diese ähnlich wie in:

for(var i = 0; i < anchor.length; i++){
    anchor[i].innerHTML="Changed Text";
}

Alternativ können Sie auch querySelector () verwenden, die nur die erste Übereinstimmung zurückgibt und daher nur ein einzelnes Element zurückgibt, ähnlich wie:

var anchor=document.querySelector(".quality");
1
Nope 5 Dez. 2013 im 20:54

GetElementsByClassName gibt HTMLCollection zurück. Weitere Informationen finden Sie unter https://developer.mozilla.org/en- US / docs / Web / API / document.getElementsByClassName.

0
adam 5 Dez. 2013 im 21:20