我想将HTML页面中的输入值定义为javascript Literal对象属性,但是在JS文件中访问时出现未定义错误。
假设我有一个像HTML一样的输入值
< input type =“hidden”id =“someid”value =“dbform in arrayform”>
现在这个值我试图定义如下(A.js):
var abc = {
x : $("#someid").val(),
y: function (){
console.log(this.x);
}
}
现在,在另一个JS文件(B.js)中,我称之为
的console.log(abc.x());
任何解决方案?
答案 0 :(得分:0)
x
不是函数,而是string
。
你应该把它称为:
console.log(abc.x);
答案 1 :(得分:0)
两件事 - 首先不是console.log(abc.x());
x()
是你如何调用一个函数,你可以调用abc.y()
;虽然它是一个功能。
另一件事是必须加载jQuery,并且在完全加载DOM之后必须执行定义var abc = {
的代码
我想你想要这个:
$(function(){ // this ensures DOM is ready, careful about where you want to call abc from though;
var abc = {
var me = this;
x : function(){ return $("#someid").val()},
y: function (){
console.log(me.x); // try this instead it will help with 'this' confusion
}
}
});
现在你可以打电话了
console.log(abc.x());
答案 2 :(得分:0)
A.js
var abc;
$(function() {
abc = {
x: $("#someid").val(),
y: function (){
console.log(this.x);
}
}
});
B.js
$(function() {
abc.y();
});
请注意,$("#someid").val()
将返回一个字符串,因此您可能需要转换为数组。