Javascript 拥有<;输入类型=";复选框“&燃气轮机;介于<;th></th>;?

Javascript 拥有<;输入类型=";复选框“&燃气轮机;介于<;th></th>;?,javascript,html,Javascript,Html,我正在尝试在HTML表格标题中创建一个复选框,例如: <th id="CHECKED"> <input id="check-all" type="checkbox" onClick="javascript:checkAll(this);" class="check-all" /> </th> 当我点击复选框时,我的浏览器显示我的函数“checkAll”未定义 有人能告诉我为什么会出现这个错误吗 这是我的JSFIDLE: 提前感谢正如所评论的,它

我正在尝试在HTML表格标题中创建一个复选框,例如:

<th id="CHECKED">
    <input id="check-all" type="checkbox" onClick="javascript:checkAll(this);" class="check-all" />
</th>

当我点击复选框时,我的浏览器显示我的函数“checkAll”未定义

有人能告诉我为什么会出现这个错误吗

这是我的JSFIDLE:


提前感谢

正如所评论的,它与输入是否可以存在于表头中(它可以存在)无关,但更多的是为什么会出现JavaScript错误

在您的代码中,我可以看到您的函数
checkAll()
$(document.ready()
的范围内定义

因此,它将无法从外部访问,并将抛出
Undefined
异常

将函数声明的位置更改为全局某个位置


功能检查全部(pThis){
console.log($(pThis).is(':checked')?“is checked”:“notchecked”);
}
它会起作用的


检查此

正如所评论的,它与输入是否可以存在于表头中(它可以存在)无关,但更多的是为什么会出现JavaScript错误

在您的代码中,我可以看到您的函数
checkAll()
$(document.ready()
的范围内定义

因此,它将无法从外部访问,并将抛出
Undefined
异常

将函数声明的位置更改为全局某个位置


功能检查全部(pThis){
console.log($(pThis).is(':checked')?“is checked”:“notchecked”);
}
它会起作用的


检查此

根据形式语法,任何
输入
元素都作为
th
元素的子元素有效。这是否有意义是另一个问题。
th
元素应包含列或行的标题信息。很难看出仅仅一个复选框就可以做到这一点。它能传达什么标题信息


看起来你真正的问题很不一样,但我回答了标题中的问题。

根据形式语法,任何
输入
元素作为
th
元素的子元素都是有效的。这是否有意义是另一个问题。
th
元素应包含列或行的标题信息。很难看出仅仅一个复选框就可以做到这一点。它能传达什么标题信息


看起来你真正的问题是非常不同的,但我回答了标题中的问题。

在这里对我有效:(将左侧的边栏设置为
无包装)
)它与输入是否可以存在于表头中无关(它可以),但更多的是为什么会出现JavaScript错误。它有效:(1)内联事件处理程序是一个禁忌(2)当使用内联处理程序时,您的代码应该在头或体中。我将您的脚本移动到表上方的脚本标记中,在这里它对我有效:(将左侧的侧栏设置为
No Wrap-in
)它与输入是否可以存在于表头中无关(它可以),但更多的原因是您为什么会出现JavaScript错误。它有效:(1)内联事件处理程序是一个No-No(2)当使用内联处理程序时,您的代码应该在头或体中。我将您的脚本移动到表上方的脚本标记中,它可以+1:Scope工作。而且,它实际上不需要在复选框之前。它可以在任何地方,只要在解析内联处理程序时可以访问它。+1:Scope。而且,它实际上不需要在复选框之前。它可以在任何地方,只要在解析内联处理程序时可以访问它。
<script>
    function checkAll(pThis) {
        console.log($(pThis).is(':checked') ? "is checked" : "not checked" );
    }
</script>