2016-07-28 24 views
1

Ich versuche, einen Ersatz für alle Etiketten in meiner Form zu tun, wenn es in JS lädt, aber ich habe kein Glück.Verwenden von ersetzen auf jedem Etikett in einem Formular

$(document).ready(function($){ 
    $('.label').each(function(e){ 
     document.getElementById($(this)).textContent = document.getElementById($(this)).innerHTML.replace("and", "&"); 
    }); 
}); 

Ich weiß nicht, was besser ist: .innerHTML oder .textContent. Sie scheinen beide mein Ziel zu erreichen. Vielen Dank im Voraus.

Nach dem Test: Ich wünschte wirklich, ich könnte den folgenden Code zu arbeiten.

$('label').text(function(i, text) { 
    return text.replace("and", "&"); 
}) 

Danke für alle Vorschläge, ich habe den Code mit einer einfachen Schleife arbeiten.

var myElements = document.getElementsByTagName("LABEL"); 
for(var k=0; k<myElements.length; k++){ 
    myElements[k].innerHTML = myElements[k].innerHTML.replace("and", "&"); 
} 
+0

Da Sie jQuery verwenden Sie tun können this: '$ ('. label'). text (funktion (i, text) {return text.replace (" and "," &");}) '! –

+0

Könnten Sie bitte ein bisschen mehr Details geben? Ich mag es, wie sauber es aussieht, aber würde ich das in meine '.each (function (e)) einfügen {' einfach in das '$ (document) werfen .ready (function ($) {' funktioniert nicht. – Dstjohniii

+0

Bitte nehmen Ein Blick auf dieses https://jsfiddle.net/iRbouh/59z31qm3/ Es ist ein funktionierendes Beispiel. Ich habe das nicht als Antwort gepostet, weil einfach Ihre Frage nicht beantwortet: ** und idk was ist besser .innerHTML oder .textContent ** –

Antwort

-1

Zunächst benutze ich persönlich innerHTML. Sie brauchen nicht auf beide

document.getElementById(); 

und

$(this) 

Versuchen Sie dies in Ihrem Schleife verwenden:

var toReplace=$(this).innerHTML; 
toReplace.replace("and", "&"); 

Beachten Sie jedoch, dass

document.getElementById("x"); 

werden nur greifen das erste Element mit der ID "x", wenn Sie suchen mehrere Elemente greifen, geben sie alle den gleichen Klassennamen und sie dann in ein Array greifen mit

myElements=document.getElementsByClassName("classname"); 

und dann durchlaufen sie wie folgt zu ersetzen:

for (i=0; i<myElements.length; i++){ 
    myElements[i].innerHTML.replace('and', '&'); 
} 
+0

'var myElements = document.getElementsByTagName (" LABEL ");' 'für (var k = 0; k Dstjohniii

+0

Ich habe das verbessert, da er mir die Idee gegeben hat, es durch eine Schleife zu laufen und auf die Elemente zuzugreifen, der wahre Gewinner ist getElementsByTagName ("LABEL") – Dstjohniii