jQuery val undefined

时间:2017-09-21 12:46:54

标签: javascript jquery

我试图使用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;"

这会有所作为吗?

2 个答案:

答案 0 :(得分:2)

  

当我从一个单独的js文件调用相同的函数时,它返回   未定义。

  • 如果您的意思是该函数返回undefined。

这是正确的行为,因为您返回没有。

您必须使用return声明。

function externalFunction() {
    return $("#amount").val();
}

let value=externalFunction();
console.log(value);
  • 如果在您的实际文件中找不到功能。

使用导出语句或require以使其他文件中的功能可见。

答案 1 :(得分:0)

如问题所述,这根本不可能。

相反,我怀疑你在调用externalFunction的同时没有打电话给console.log。相反,我怀疑你在输入存在之前提前调用它。

val只返回undefined只有两个原因:

  1. 你在一个空的jQuery对象上调用它(因为没有任何东西与选择器匹配,例如,因为你太快调用了这个函数)。

  2. 您在第一个元素不是inputselect的jQuery对象上调用它(因此没有value属性。)