2009-08-18 10 views
0

J'ai une page javascript que je cherche à localiser. J'ai la traduction manipulée, mais une chose que j'ai de la difficulté avec est la meilleure manière de manipuler quel texte mettre. Évidemment, pour un bouton, je devrais définir le titre/valeur. Pour un span probablement le innerHTML/innerTEXT et pour une image l'alt. Je me demandais s'il y a une fonction dans JQuery qui me permettra d'appeler une fonction générique qui va définir l'alt ou la valeur ou innerHTML basé sur le nodeType.Localisation d'attribut en utilisant jQuery

fondamentalement une bonne façon de le faire:

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

toute aide serait à portée de main.

Merci

John

Répondre

1

Eh bien, je ne pense pas qu'il y ait un, mais vous pouvez l'implémenter.

(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); 

Utilisation est la suivante:

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

La partie (function ($) {})(jQuery) est un idiome standard jquery lors de l'écriture des plugins. Vérifiez le jquery docs for plugin authoring pour plus d'informations. Aussi, c'est une bonne idée d'utiliser la fonctionnalité fournie par jquery (sous des formes comme text() et html()) pour éviter les incohérences du navigateur.

P.S. La solution avec body * sera très lente pour les documents légèrement plus grands.