这似乎是一个重复的问题,在某种程度上,它是,但我已经经历过许多类似的问题,遗憾的是,没有一个能满足我的需要。我非常感谢特定问题的建议。
我在JavaScript代码中的主要问题是我无法从函数ReadMoreLessText访问函数TextLimiter中的变量RememberText20和RememberFullText中的值。 “Message”是ReadMoreLessText函数的一个参数,它基本上匹配上述变量中单击的正确值的元素,这些变量本身就是数组。
*我知道数组本身没有任何问题,因为它们保留了它们应有的值,因为一个简单的alert()证明了这一点。类似地,Message参数没有任何问题,因为函数ReadMoreLessText可以与其他值一起使用。
我的简单问题是我无法从ReadMoreLessText函数访问上述变量中的值,尽管它们应该是全局变量。
我非常感谢这里特定于问题的答案。提前谢谢。
// JavaScript Document
//Start Text250
window.onload = function TextLimiter() {
for (y = 0; y < 6; y++) {
FullText = document.getElementsByClassName("Introduction")[y].innerHTML;
TextLength = FullText.length;
RememberFullText = [];
RememberFullText[y] = FullText;
var Text250 = FullText.substr(0, 250) + "...";
RememberText250 = [];
RememberText250[y] = Text250;
if (TextLength > 250) {
document.getElementsByClassName("Read_More")[y].innerHTML = "Read More→";
document.getElementsByClassName("Introduction")[y].innerHTML = Text250;
} else {
document.getElementsByClassName("Read_More")[y].innerHTML = "";
}
}
};
//End Text250
//Start ReadMoreLessText
var ReadMore = function(Message) {
var ScreenText = document.getElementsByClassName("Introduction")[Message].innerHTML;
if (ScreenText === RememberText250[Message]) {
document.getElementsByClassName("Introduction")[Message].innerHTML = RememberText250[Message];
} else {
document.getElementsByClassName("Introduction")[Message].innerHTML = RememberText250[Message];
}
};
//End ReadMoreLessText
答案 0 :(得分:0)
我没有看到你的变量被声明为全局变量。你有var RememberText20, RememberFullText;
以外的任何功能吗?
答案 1 :(得分:0)
尝试在封闭的RememberFullText
循环之外定义RememberText250
和for
。
window.onload = function TextLimiter() {
RememberFullText = [];
RememberText250 = []
for (y = 0; y < 6; y++) {
...
如上所述,它们在循环的每次迭代中都设置为空数组。因此,在循环结束后,只保留每个数组的最后一个条目。