为不同的函数访问函数中的变量-Javascript

为不同的函数访问函数中的变量-Javascript,javascript,Javascript,这可能看起来像是一个重复的问题,在某种程度上,它是,但我已经经历了许多类似的问题,不幸的是,没有一个适合我的需要。我真的很感激有针对性的建议 这里JavaScript代码的主要问题是,我无法从函数ReadMoreLessText访问函数TextLimiter中变量RememberText20和RememberFullText中的值。该消息是ReadMoreLessText函数的一个参数,该函数基本上将单击的元素与上述变量中的正确值相匹配,这些变量本身就是数组 *我知道数组本身没有问题,因为它们保

这可能看起来像是一个重复的问题,在某种程度上,它是,但我已经经历了许多类似的问题,不幸的是,没有一个适合我的需要。我真的很感激有针对性的建议

这里JavaScript代码的主要问题是,我无法从函数ReadMoreLessText访问函数TextLimiter中变量RememberText20和RememberFullText中的值。该消息是ReadMoreLessText函数的一个参数,该函数基本上将单击的元素与上述变量中的正确值相匹配,这些变量本身就是数组

*我知道数组本身没有问题,因为它们保留了它们应该保留的值,因为一个简单的警报就可以证明这一点。类似地,Message参数也没有问题,因为函数ReadMoreLessText可以很好地处理其他值

我的简单问题是,我无法从ReadMoreLessText函数访问上述变量中的值,尽管它们应该是全局变量

我非常希望能在这里给出一个具体问题的答案。先谢谢你

//JavaScript文档 //开始文本250 window.onload=功能文本限制器{ 对于y=0;y<6;y++{ 全文=document.getElementsByClassNameIntroduction[y].innerHTML; TextLength=FullText.length; RememberFullText=[]; 回忆全文[y]=全文; var Text250=FullText.substr0,250+。。。; RememberText250=[]; RememberText250[y]=Text250; 如果TextLength>250{ document.getElementsByClassNameRead\u More[y].innerHTML=Read More→; document.getElementsByClassNameIntroduction[y].innerHTML=Text250; }否则{ document.getElementsByClassNameRead_More[y].innerHTML=; } } }; //结束文本250 //启动ReadMoreLessText var ReadMore=functionMessage{ var ScreenText=document.getElementsByClassNameIntroduction[Message].innerHTML; 如果屏幕文本===MemberText250[消息]{ document.getElementsByClassNameIntroduction[Message].innerHTML=MemberText250[Message]; }否则{ document.getElementsByClassNameIntroduction[Message].innerHTML=MemberText250[Message]; } };
//End ReadMoreLessText我没有看到您的变量声明为全局变量。您是否有一个var RememberText20,RememberFullText;在任何函数之外?

尝试在封闭for循环之外定义RememberFullText和RememberText250


在循环的每次迭代中,它们被设置为空数组。因此,循环完成后,将只保留每个数组的最后一个条目。

它们对于ReadMore函数仍然不可见,因为它们的作用域是TextLimiter。它们需要在TextLimiter函数之外定义。我已经在第一个函数中声明了变量,但是在循环之外,虽然数组是空的,但它可以正常工作。消息参数仍然存在unchanged@DanielFlint如果对未定义的标识符进行了注释,则浏览器中的窗口的Javascript。虽然我不建议这样做,而且ES6在严格模式下不支持它,但我相信这解释了为什么此代码在这种情况下工作。
window.onload = function TextLimiter() {
    RememberFullText = [];
    RememberText250 = []
    for (y = 0; y < 6; y++) {
       ...