我试图使用jQuery在html页面上获取输入元素的值。如果我从html页面中的脚本标记调用它,我可以使用.val()获取元素值。但是,当我从单独的js文件调用相同的函数时,它返回 undefined 。
任何人都知道这里发生了什么?
的index.html
$(document).ready(function() {
console.log($("#amount").val()); // This works
externalFunction(); // This returns undefined
});
file.js
function externalFunction() {
console.log($("#amount").val());
}
修改
我应该澄清包含input元素的div是隐藏的。
style="display: none;"
这会有所作为吗?
答案 0 :(得分:2)
当我从一个单独的js文件调用相同的函数时,它返回 未定义。
这是正确的行为,因为您返回没有。
您必须使用return
声明。
function externalFunction() {
return $("#amount").val();
}
let value=externalFunction();
console.log(value);
使用导出语句或require
以使其他文件中的功能可见。
答案 1 :(得分:0)
如问题所述,这根本不可能。
相反,我怀疑你在调用externalFunction
的同时没有打电话给console.log
。相反,我怀疑你在输入存在之前提前调用它。
val
只返回undefined
只有两个原因:
你在一个空的jQuery对象上调用它(因为没有任何东西与选择器匹配,例如,因为你太快调用了这个函数)。
您在第一个元素不是input
或select
的jQuery对象上调用它(因此没有value
属性。)