2012-12-03 35 views
16

正如堆棧上的許多問題所討論的那樣 - IE 8不會接受.trim(),但jQuery框架負責處理這個問題。如何使用jQuery的trim()函數

我不知道如何翻譯我的功能,以使用該版本的修剪(我以爲我已經使用jQuery),有人可以建議嗎?這是我的代碼:

$('input').val(function(index, val){ 
    return val.replace('Please Select', '').trim(); 
}); 

這是設計用於替換沒有任何字符串。

我已經試過:

$('input').val(function(index, val){ 
    return val.replace('Please Select', '')$.trim(); 
}); 

但是這是沒有好處的。

回答

4

試試這個:

$.trim(val.replace('Please Select', '')); 

這裏的文檔中的Trim()條目。

7

IE8不具有本地trim方法,通常,我只是增加原型:

if (!String.prototype.trim) 
{ 
    String.prototype.trim = function() 
    { 
     return this.replace(/^\s+|\s+$/g,''); 
    }; 
} 

這是修剪字符串最短的正則表達式,但我聽說它說.replace(/^\s\s*/,'').replace(/\s*\s$/,'')是(輕微)更快...選擇是你的

如果你真的想用這個jQuery,當然,你必須使目標字符串被調用方法的上下文($.trim調用方法$ == = jQuery對象),所以使字符串成爲jQ對象:

$(' foo bar ').trim();//returns "foo bar" 
//compared to augmented prototype: 
' foo bar '.trim();//returns "foo bar" 

增強原型的好處是,您沒有額外的開銷來創建新的jQuery對象,而使用原型方法依賴於JS將字符串包裝到本地String對象中並應用該方法。基本上,這是相同的操作,但它應該是稍微更有效,因爲jQuery做了一堆檢查傳遞給jQuery的構造函數的任何字符串($()