在下面的代码中我得到了JSLint错误(不要在循环中创建函数)。你能帮我修改代码以满足JSLint。
setEllipsis : function () {
$('.co_documentReportTable > thead > tr > th').each(function() {
$(this).find('.co_dcrTable_Header').each(function() {
var $el = $(this);
if($el.css("overflow") === "hidden") {
var text = $el.html();
while ($el.height() > 64) {
$el.text(function (index, text) {
return text.replace(/\W*\s(\S)*$/, '...');
});
//
var txt = 'Fair consideration/no fraudulent conveyance';
if(text.indexOf(txt) !== -1 ) {
$el.text(txt + '...');
}
}
}
});
});
}
我尝试创建另一个函数并在那种情况下调用它,而循环将永远执行。
答案 0 :(得分:3)
一般来说,你想在这里使用text-overflow:省略CSS属性。
否则 - 拉出匿名函数并给它起一个名字,这样你最终可能会得到:
setEllipsis : function () {
var addEllipses = function(index, text) {
return text.replace(/\W*\s(\S)*$/, '...');
};
$('.co_documentReportTable > thead > tr > th').each(function() {
$(this).find('.co_dcrTable_Header').each(function() {
var $el = $(this);
if($el.css("overflow") === "hidden")
{
var text = $el.html();
while ($el.height() > 64) {
$el.text(addEllipses);
var txt = 'Fair consideration/no fraudulent conveyance';
if(text.indexOf(txt) !== -1 ){
$el.text(txt + '...');
}
}
}
});
});
}