2009-08-18 6 views
0

Ich habe eine Javascript-Seite, die ich suche zu lokalisieren. Ich habe die Übersetzung behandelt, aber eine Sache, mit der ich Schwierigkeiten habe, ist der beste Weg, mit dem Text umzugehen, der gesetzt werden soll. Offensichtlich sollte ich für einen Button den Titel/Wert einstellen. Für eine Spanne wahrscheinlich die innerHTML/innerTEXT und für ein Bild die alt. Ich frage mich, ob es irgendeine Funktion in JQuery gibt, die es mir erlaubt, eine generische Funktion aufzurufen, die den alt oder value oder innerHTML basierend auf dem nodeType setzt.Attributlokalisierung mit jQuery

im Grunde ein schöner Weg, dies zu tun:

if(this.nodeName == "input") 
{ 
    this.value = "newButtonText" 
} 
if (this.nodeName == "SPAN") 
{ 
    this.innerHTML = "newSpanText"; 
} 

jede Hilfe wäre sehr nützlich sein.

Dank

John

Antwort

1

Nun, ich glaube nicht, es ist, aber man kann es selbst implementieren.

(function ($) { 
    $.fn.caption = function (newText) { 
     return this.each(function() { 
      var $this = $(this); 
      if ($this.is(':submit')) { 
       $this.val(newText); 
      } else if ($this.is('img') { 
       $this.attr('alt', newText); 
      } else { 
       // A simple dome element like span, div, etc. 
       $this.text(newText);     
      } 
     }); 
    } 
})(jQuery); 

Verwendung ist wie folgt:

$('#coolImg').caption("New caption in English"); 

Der (function ($) {})(jQuery) Teil ein Standard jquery Idiom ist, wenn Plugins zu schreiben. Überprüfen Sie die jquery docs for plugin authoring für weitere Informationen. Es ist auch eine gute Idee, die Funktionalität von jquery zu verwenden (in Form von Methoden wie text() und html()), um Browser-Inkonsistenzen zu vermeiden.

P.S. Die Lösung mit body * wird für etwas größere Dokumente sehr langsam sein.