2009-08-18 42 views
0

我有一個javascript頁面,我正在看本地化。我對翻譯進行了處理,但是我遇到的一件事是處理要設置的文本的最佳方式。 顯然,對於一個按鈕,我應該設置標題/值。對於一個跨度可能是innerHTML/innerTEXT和一個圖像alt。 我想知道在JQuery中是否有任何函數會允許我調用一個通用函數,該函數將根據nodeType設置alt或value或innerHTML。使用jQuery進行屬性本地化

基本上這樣做的一個很好的方式:

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

任何幫助將是得心應手。

感謝

約翰

回答

1

嗯,我不認爲有一個,但你可以自己實現它。

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

用法如下:

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

(function ($) {})(jQuery)部分是一個標準的jquery成語編寫插件時。檢查jquery docs for plugin authoring獲取更多信息。此外,使用jQuery提供的功能(以text()html()等方法的形式)避免瀏覽器不一致是個好主意。

P.S.對於稍大的文檔,body *的解決方案將非常緩慢。