脚本已经可以根据用户的输入计算脚本的宽度,也可以计算字符串的宽度。现在我想要实现的是,当用户重复字符串时,例如" A",然后字符串" A"重复6次,所以它将是" AAAAAA",这里是问题发生的地方,我在重复字符串时所做的功能不起作用。基本上,字符串将重复,让我们说6次,然后计算字符串的宽度。对此有何想法?
$.fn.textWidth = function(text, font) {
var fontsize = $('#fntSize').val();
if (!$.fn.textWidth.fakeEl) $.fn.textWidth.fakeEl = $('<span>').hide().appendTo(document.body);
$.fn.textWidth.fakeEl.text(text || this.val() || this.text()).css({'font-size':fontsize+'px'});
return $.fn.textWidth.fakeEl.width();
};
$.fn.repeat = function( num )
{
return new Array( num + 1 ).join( this );
}
$("[name='txtLine[]']").each(function(){
$(this).css({"background-color":"#fff"}).siblings('span.errorMsg').text('');;
if (!this.value.length)
{
$(this).focus();
$(this).css({"background-color":"#f6d9d4"}).siblings('span.errorMsg').text('Please add a word.');
event.preventDefault();
}
if($(this).repeat(6).textWidth() >= 490)
{
alert("Too long");
event.preventDefault();
}
});
});
答案 0 :(得分:0)
$(this).repeat(6).textWidth()
应为this.value.repeat(6).textWidth()
。 $(this)
是一个jQuery对象,而不是字符串。
如果你想定义一个对普通字符串进行操作的方法,你需要将它添加到String
原型中,而不是将它定义为jQuery方法:
String.prototype.repeat = function( num )
{
return new Array( num + 1 ).join( this );
}