我在SharePoint中编写了一个JQuery脚本来截断多行文本列。以下是剧本:
{{1}}
在上面的代码" javascript:alert(textFull [$ i])"显示' undefined'警惕。但它上面的警报显示正确的文字。另外,当我使用变量而不是数组时,它在锚标记内的警报中工作正常。我还将数组声明为全局数组。那我错过了什么?
答案 0 :(得分:1)
您正在使用for
循环遇到经典问题而不使用闭包来跟踪索引
如果所有数组都用于修改html
,则无需创建该数组使用html(fn)
和jQuery事件处理程序
$("[class^=ExternalClass]").html(function(index, oldhtml){
if(oldhtml.length >=50){
// store the full html in element data
$(this).data('html', oldhtml)
return oldhtml.substring(0,49)+"<a class="more-btn">...more</a>"
} else{
return oldhtml
}
}).find('.more-btn').click(function(){
var $div = $(this).parent();
$div.html( $div.data('html'));
});