2016-06-27 9 views
-2

Ich bin auf der Suche nach einer Möglichkeit, den Text aller Links mit einer bestimmten Klasse zu ersetzen, mit Javascript (nicht jquery). Ich möchte alle Links mit dieser spezifischen Klasse, um einen generischen Text zu haben, wie zum Beispiel: "Klicken Sie hier".Ändern Sie den Text der Links mit einer bestimmten Klasse, mit Javascript

Jede Hilfe wäre apreciated, Dank fortschrittlicher

+3

Aktien Code –

+0

Haben Sie versucht, alles zu alle? –

+0

Beginnen Sie mit dem Lesen der HTML-DOM-Funktionen 'document.get *': http://www.w3schools.com/jsref/met_document_getelementsbyclassname.asp und lesen Sie weiter über die DOM-Elementfunktionen: http: //www.w3schools. com/jsref/dom_obj_all.asp. Sie möchten alle DOM-Elemente für das spezifische Tag erhalten, iterieren durch das Array var und manipulieren nur die Elemente mit der Klasse, die Sie betreffen –

Antwort

0

ich getElementsByClassName verwenden würde eine Reihe von Links zu erwerben. Sie können dann diese Elemente durchlaufen und Änderungen vornehmen.

Heres a Fiddle, das auch eine Validierung enthält, um nur den Text von Anchor-Tags zu checken, falls Sie targetClass für etwas anderes in anderen Elementen verwenden.

EDIT: sieht aus wie andere mich schlagen, um es :-) (auch Befestigungstyp in Funktion)

+0

Es funktioniert perfekt Sam, aber ich machte einen dummen Fehler, als ich fragte. Ich meinte alle Links innerhalb einer bestimmten Klasse. Nicht mit, in. Die Links werden innerhalb eines div mit einer bestimmten Klasse sein. – user2965583

+0

Kein Problem, benutze einfach den Originalcode, um die divs mit der Klasse zu bekommen, dann 'getElementsByTagName', um die' a' Tags innerhalb dieser 'div's zu finden. Ich habe [die Geige] (https://jsfiddle.net/samando27/snq4bxvk/1/) mit einem neuen Beispiel aktualisiert. –

+0

genial, vielen Dank! – user2965583

0
var links = document.querySelectorAll(".yourclass"); 
for (var i=0; i<links.length; links++) 
{ 
    links[i].innerHTML = "click here"; 
} 
+0

Es funktioniert perfekt Nekomajin, aber ich machte einen dummen Fehler, wenn ich fragte. Ich meinte alle Links innerhalb einer bestimmten Klasse. Nicht mit, in. Die Links befinden sich innerhalb eines div mit einer bestimmten Klasse. – user2965583

+0

Ändern Sie den Parameter des querySelectors in '" .yourclass a "'! – Nekomajin42

+0

Es funktioniert, aber nur für das erste div mit dem Link. Es gibt 9 Links auf der Seite mit derselben Klasse.): – user2965583

0

Dies sollte den Trick. Es verwendet ES6, also stellen Sie sicher, dass Sie entweder Chrome Canary oder transpiler like Babel verwenden.

Sagen Sie diesen Markup ist ...

<a class="classname" href="#">STUBBED</a> 
<a class="classname" href="#">MOCKED</a> 
<a class="classname" href="#">PLACEHOLDER</a> 

Dies als JS funktionieren sollte ...

let refs = document.getElementsByClassName('classname'); 
refs = [].slice.apply(refs); 

refs.forEach(ref => ref.innerHTML = 'click here'); 
+0

Es funktioniert perfekt Wcarroll, aber ich machte einen dummen Fehler, als ich fragte. Ich meinte alle Links innerhalb einer bestimmten Klasse. Nicht mit, in. Die Links werden innerhalb eines div mit einer bestimmten Klasse sein. – user2965583

0
function myFunction() { 
    var c = document.querySelectorAll(".example>a"); 
    for(i=0;i<c.length;i++) 
    { 
     c[i].innerHTML = "Click Me!";   
    } 
} 

Dieser den Trick in reiner Javascript tun sollte

+0

Es funktioniert perfekt Agney, aber ich machte einen dummen Fehler, als ich fragte. Ich meinte alle Links innerhalb einer bestimmten Klasse. Nicht mit, in. Die Links werden innerhalb eines div mit einer bestimmten Klasse sein. – user2965583

+0

Ich habe meine Antwort korrigiert –

+0

Es funktioniert jetzt nicht, aber vielen Dank, Sam Anderson Antwort funktioniert, aber noch einmal vielen Dank. – user2965583