JavaScript 中的函数调用问题
function call issue in javascript
我想调用一个函数,但是我收到错误"JavaScript运行时错误:'a'未定义"。我无法更改删除"$(",因为它会破坏我的其他代码,我需要能够在函数 a 中获取 var n。
<input name="searchTxt" type="text" maxlength="512" id="searchTxt" class="searchField"/>
<input type="button" onclick="a()" name="add" value="Add input field" />
<script type="text/javascript">
$(function a () {
var n = document.getElementById("searchTxt").value;
});
</script>
你应该
把你的script
放在头上而不是body
,因为你无论如何都在使用jQuery的DOM就绪处理程序。
此外,您可能应该提取命名函数表达式。
<script>
function a() {
var n = document.getElementById("searchTxt").value;
}
$(a);
</script>
虽然上面的答案已经解决了主要问题,但我根本不喜欢 HTML 中的任何 JavaScript,甚至不喜欢调用。我可以建议以下编辑吗
$(function a() {
$("input[name='add']").on("click", function() {
var n = $("#searchTxt").val();
});
});
这样做的目的如下:
- 您可以在 HTML 和 CSS 加载后安全地调用所有脚本(推荐)。
- 仅当事件存在并加载时,才将事件绑定到元素,下降回来没有任何错误。
- 不依赖于定义的任何范围,因此您永远不会获得函数未定义的问题。
- 将 JavaScript 与 HTML 完全隔离(只是一个选择,而不是强制性)。
当你将一个函数传递给 jQuery 的主函数时,jQuery 会绑定这个函数,以便在 DOM 完成加载时执行,但这个函数在全局范围内不可访问。
如果你已经使用过jQuery,你可以尝试这样的东西:
<script>
function a(){
var n = $("#searchTxt").val();
}
<script>
相关文章:
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 从根本上说,函数调用出了问题.功能在控制台中确实有效
- node.js for循环在函数调用返回之前进行迭代,从而产生对象问题
- JavaScript 中的函数调用问题
- 角度显示/隐藏只处理第二个函数调用,应用/摘要问题
- JSONP函数调用问题
- AngularJS:$http请求问题-没有为jQuery函数调用更新DOM
- JavaScript函数调用的问题
- 嵌套函数调用的下划线_.bind()问题
- Javascript命名空间问题,我如何在这个函数调用中获得这个值
- 函数调用自己setInterval(浏览器冻结问题)
- Javascript函数调用问题
- Href javascript函数调用自动解码问题
- Javascript函数调用不当(参数问题)
- Jquery函数调用/创建问题
- JavaScript ES6侧导航问题时,函数调用
- 将this.constructor与构造函数调用一起使用以访问静态属性时是否存在兼容性问题
- 将JavaScript构造函数作为函数调用(没有新的?)是否存在问题
- setInterval函数调用出现问题
- Javascript onclick函数调用问题:won't传递字符串