2013-02-04 168 views
-2
jQuery.fn.extend({ 
    fillCurrency : (function() { 
     $this = jQuery(this); 

     function _usd(string1) { 
      $this.text("$" + parseFloat(string1).toFixed(2)); 

      return $this; 
     } 

     return { 
      usd : _usd 
     }; 
    })() 
}); 


var text = 2; 
jQuery("#total").fillCurrency.usd(text); 


<p id="total"></p> 

嘗試了幾個選項,我想我現在已經接近。現在的問題是Object [object global]沒有方法'createDocumentFragment'。有人知道問題在這裏嗎?如何將所需的jQuery對象傳遞給內部對象?

+1

什麼問題?你想通過什麼,在哪裏? –

+0

-1在提問前至少檢查您的代碼中是否存在拼寫錯誤 – JohnJohnGa

+0

Typo是在將代碼塊放入代碼塊時完成的。在實際的代碼中是正確的。 – ClearBucket

回答

0

我得到了解決:

jQuery.fn.extend({ 
Currency : function() { 
     var $this = this; 

     var _Fill = { 
      usd : function(string) { 
       $this.text("$" + parseFloat(string).toFixed(2)); 

       return $this; 
    } 
     } 

     var _Get = { 
      usd : function(string) { 
       $this.text("$" + parseFloat(string).toFixed(2)); 

       return $this; 
    } 
     } 

     return { 
      Fill : _Fill, 
      Get : _Get 
     } 
    } 
}); 

這將通過jQuery對象分解成的東西里面的物體,如一個插件。

0

首先,我會建議通過貨幣的功能fillCurrency的參數,然後在你的代碼中有一個錯字

jQuery("#total").fillCurency.usd(text); 

應該

jQuery("#total").fillCurrency.usd(text); 

,但即使您修復錯字它不會給你你想要的

這是我建議:

(function ($) { 
    $.fn.fillCurrency = function (currency, value) { 
     return this.each(function() { 
      if (currency === "usd") { 
       $(this).text(parseFloat(value).toFixed(2)); 
      } 
     }); 
    } 
})(jQuery); 

$(function() { 
    var text = 2; 
    $("p#total").fillCurrency("usd", text); 
}); 

http://jsfiddle.net/pWcBD/

+0

這個想法是有更多超越「美元」。你只能傳遞一次jQuery對象嗎? – ClearBucket