将jQuery变量传递给Javascript函数
问题描述:
我在用jQuery加载的单独HTML文件中有一个表。然后我定义变量“aa”。我试图在我的JavaScript函数“报告(期间)”中使用这个变量。我试图创建一个全局变量,但没有帮助。我不完全确定我做得正确。我对JavaScript相当陌生,对jQuery的了解甚少。我已经通过了其他类似的帖子,但很难理解到底发生了什么。任何帮助将不胜感激。将jQuery变量传递给Javascript函数
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)
};
};
答
如果我理解您的方案正确,你将不能获得相关的节点,因为通过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
}
})
答
如果你想要的“全局”变量应声明它的所有功能体外。所以这应该是。
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);
我得到的“2,1”,而不是“1,2”。
如果你想使用它,你应该真正学习JavaScript和jQuery。您的report
代码似乎可以用jQuery替换为一行代码。
如果它有效,你不应该改变它以要求jQuery(除非你有特定的优点,你没有提到,出于某种原因);另外:你想传递什么?什么是相关的HTML,这个函数有什么意思? – 2014-09-06 20:16:16
我正在使用jquery来加载外部HTML文档。如果有另一种方式,我会对它开放。 var“aa”包含一个数字,如“111-111111-111”如果两个变量x和aa相等,则隐藏某些部件号。 x来自内部表并且来自另一个外部表的aa。如果我可以使用JavaScript函数工作,那么一切都很好。我试图将它们嵌套在一起,但只有一个或另一个可以工作。 – 2014-09-06 20:23:48
值得注意的是:没有这样的事情作为一个jQuery变量;只有JavaScript变量。 – Utkanos 2014-09-06 20:39:36