jquery 为什么我的onclick事件抛出undefined?

vecaoik1  于 2022-11-03  发布在  jQuery
关注(0)|答案(2)|浏览(246)

我有以下按钮:

<input type="button" onclick="printDiv('print-content')" value="print a div!"/>

下面的JavaScript代码:

<script>
$(function() {
  function printDiv(divName) {
   alert('s')
     var printContents = document.getElementById(divName).innerHTML
     w=window.open()
     w.document.write(printContents)
     w.print()
     w.close()
  }
})
</script>

当我单击printDiv时,出现以下错误:
未捕获的引用错误:未定义printDiv付款历史记录:398 onclick
我真的不明白。

nxagd54h

nxagd54h1#

因为printDiv不在全局作用域中。您已经用一个函数 Package 了它。所以,printDiv作用域在该直接函数中,而不是全局作用域。
JavaScript scoping and Hoisting

cotxawn7

cotxawn72#

我做了些改动,希望能对你有所帮助。
首先,我用jquery定义了一个click事件的回调函数,然后,显示div内容。
下面是代码片段
第一个
我试着添加一个新的代码片段来告诉你它是如何工作的!这只是一个练习来告诉你变量和函数在javascript中是如何工作的。
请阅读有关函数作用域和变量生命周期的Javascript文档。
运行这个代码段,看看它是如何工作的。问候!!
第一个

相关问题