JavaScript全局数组未定义,尽管它在alert中显示

时间:2015-08-25 13:38:44

标签: javascript jquery arrays global-variables

我在SharePoint中编写了一个JQuery脚本来截断多行文本列。以下是剧本:

{{1}}

在上面的代码" javascript:alert(textFull [$ i])"显示' undefined'警惕。但它上面的警报显示正确的文字。另外,当我使用变量而不是数组时,它在锚标记内的警报中工作正常。我还将数组声明为全局数组。那我错过了什么?

1 个答案:

答案 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'));    
});