上週,我們爲某個選擇器中的文本省略了一個函數。在我的jquery插件中需要幫助
我打電話這樣的功能:通過選擇和我想的文本的最大長度
ellipsiText(50」班)。這工作正常,但即時嘗試使它成爲一個插件,調用像這樣:$('。class')。ellipsiText(50)。
所以,我正在閱讀jQuery網站的教程,我明白如何去做。但我認爲我對「這個」seletor有問題。這是我原來的功能:
function ellipsiText(selector,maxLength){
var array = $(selector).map(function(){
return $(this).text();
}).get();
var i;
var teste = [];
for (i=0;i<array.length;i++){
if (array[i].length > maxLength){
teste.push(array[i].substr(0,maxLength) + "...");
} else {
teste.push(array[i]);
}
}
for (var i=0;i<teste.length;i++){
$(selector).each(function(i){
$(this).text(teste[i]);
});
}
}
這裏是我做一個jQuery插件的暫定:
(function ($) {
$.fn.ellipsiText = function(length){
var array = $(this).map(function(){
return $(this).text();
}).get();
var i;
var teste = [];
for (i = 0; i < array.length; i++){
if (array[i] > length){
teste.push(array[i].substr(0,length) + "...");
} else {
teste.push(array[i]);
}
}
$(this).each(function(i){
$(this).text(teste[i]);
});
};
}(jQuery));
我到底做錯了什麼?
爲什麼這麼多的循環?一個循環,檢查長度,如果>設置文本。無需映射,循環,循環。 – epascarello