我在一个单独的HTML文件中有一个表,我用jQuery加载。然后我定义变量“aa”。我试图在我的JavaScript函数“report(period)”中使用这个变量。我尝试创建一个全局变量,但这没有帮助。我并不完全确定我做得对。我是JavaScript的新手,知道更少的jQuery。我已经浏览了其他类似的帖子,但很难准确理解发生了什么。非常感谢任何帮助。
的jQuery
jQuery(function($) {
aa = document.getElementById('part1Table').rows[0].cells[2].innerHTML;
});
的Javascript
function report(period) {
x = document.getElementById("tblabiNew").rows[2].cells[1].innerHTML; /*----- for testing use a number instead (example: x = "205-000040-634") ------*/
/*---------------------------------------------------------------------------------------------- Start - Object Removal Control ------------------------------------------------------------------------------------*/
if (x==aa) {
var i = 1; do {
+ i; i++;
var e = document.getElementById (i);
e.style.display = 'none'
} while (i < 15)
/*polebrea21*/
var polebrea = 21;
do {
+ polebrea;
polebrea++;
var e = document.getElementById (polebrea);
e.style.display = 'none'
} while (polebrea < 28)
/*polebrea31*/
var polebrea = 31;
do {
+ polebrea;
polebrea++;
var e = document.getElementById (polebrea);
e.style.display = 'none'
} while (polebrea < 38)
/*regulatory51*/
var regulatory = 51;
do {
+ regulatory;
regulatory++;
var e = document.getElementById (regulatory);
e.style.display = 'none'
} while (regulatory < 64)
/*regulatory51*/
/*regulatory81*/
var regulatory = 81;
do {
+ regulatory;
regulatory++;
var e = document.getElementById (regulatory);
e.style.display = 'none'
} while (regulatory < 94)
};
};
答案 0 :(得分:1)
如果你想要&#34;全球&#34;变量你应该在所有函数体之外声明它。所以这应该是。
var aa;
jQuery(function($) {
aa = //do something with aa
});
但是你在没有声明的情况下使用的任何东西都是默认的全局(假设它只在浏览器中以这种方式工作)。
如果您想创建局部变量,请在其名称前添加var
关键字,如下所示:
function report(period) {
var x = //...
}
我相信您的aa
变量未声明,因为在页面准备好之前调用了report
函数。
在DOM准备就绪后,jQuery()
给出的所有函数都会运行,所以如果我写的话:
jQuery(function($) { console.log(1); });
console.log(2);
我得到&#34; 2,1&#34;而不是&#34; 1,2&#34;。
如果你想使用它,你应该学习JavaScript和jQuery。您的report
代码似乎可以用jQuery替换为一行。
答案 1 :(得分:0)
如果我正确理解您的场景,您将无法获取相关节点,因为通过ajax获取的HTML尚未注入DOM,因此无法使用document.getElementById
获取。
您是否可以提供获取删除HTML的代码,然后使用它完成的操作?这可能有助于了解情况。
无论如何,这是你可能想要尝试的东西:
$.ajax({
method: "GET",
url: "some/remote/url",
success: function(htmlContent) {
aa = $(htmlContent).find('#part1Table')[0].rows[0].cells[2].innerHTML;
// Do some processing
}
})