這似乎是一個重複的問題,並且在某種程度上它是,但我已經經歷了許多類似的問題,可悲的是,沒有一個符合我的需要。我真的很感激針對具體問題的建議。訪問函數中的變量以獲取不同的功能 - Javascript
我在這裏的JavaScript代碼中的主要問題是,我無法從函數ReadMoreLessText訪問函數TextLimiter中的變量RememberText20和RememberFullText中的值。 「消息」是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
它們仍然不會被'ReadMore'函數看到,因爲它們的作用域爲'TextLimiter'。他們需要在'TextLimiter'函數的外側定義。 –
我已經聲明瞭第一個函數內的變量,但在循環外,儘管數組是空的,但它工作正常。 「消息」參數保持不變 –