嗨,
我想全局化一个名为"lists"的变量,并在此函数上声明其值,以便我也可以在另一个函数上使用它:
var lists;
document.addEventListener("DOMContentLoaded", function(event) {
var parentOfMyList = document.body;
attributes: true,
childList: true,
subtree: true
};
var callback = function(mutationsList) {
for (var mutation of mutationsList) {
if (mutation.type == 'childList') {
var elt = document.getElementById("contents");
if (elt) {
lists = elt.textContent;
console.log(lists);
observer.disconnect();
}
}
}
};
var observer = new MutationObserver(callback);
observer.observe(parentOfMyList, config);
});
这个其他功能:
function playthis() {
const input = lists;
const sounds = input.toLowerCase();
console.log(sounds);
}
我尝试在变量"列表"之前删除"var",但它不起作用。它说"输入"是未定义的。怎么了?
谢谢
你为什么要做const input = lists;
?你不能const sounds = lists.toLowerCase();
.如果变量不是全局变量,则会在const input = lists;
上收到错误。您确定变量是字符串吗?尝试在function playthis
顶部添加console.log(typeof lists)
您必须在全局范围内定义全局变量。我无法与最后一个连接 }(;在您的第一个代码部分中。它不会告诉 var 列表是在某个代码块中还是在外部全局声明。如果您可以发布完整的代码,则很容易看到它相对于您正在调用它的函数的范围。我的意思是把它放在$(document).ready(function() {
之前.如果您显示了完整的代码,那么很容易检测到。请尝试以下代码 -
//Globally Defined
var lists;
$(document).ready(function() {
document.addEventListener("DOMContentLoaded", function(event) {
var parentOfMyList = document.body;
attributes: true,
childList: true,
subtree: true
};
var callback = function(mutationsList) {
for (var mutation of mutationsList) {
if (mutation.type == 'childList') {
var elt = document.getElementById("contents");
if (elt) {
lists = elt.textContent;
console.log(lists);
observer.disconnect();
}
}
}
};
var observer = new MutationObserver(callback);
observer.observe(parentOfMyList, config);
});
function playthis() {
const input = lists;
const sounds = input.toLowerCase();
console.log(sounds);
}
如果这不能解决您的问题,请对代码进行以下更改。我想在几个地方查看数据。
var callback = function(mutationsList) {
// In case mutationsList if JSON Object Otherwise just console mutationsList
console.log(JSON.stringify(obj));
for (var mutation of mutationsList) {
if (mutation.type == 'childList') {
var elt = document.getElementById("contents");
console.log(elt);
if (elt) {
lists = elt.textContent;
console.log(lists);
observer.disconnect();
}
}
}
};