Jquery 为什么';这个javascript不能执行吗?

Jquery 为什么';这个javascript不能执行吗?,jquery,jinja2,Jquery,Jinja2,我正在尝试在jinja2模板中使用一些jquery。预期的行为是,选中SelectAll框将选中其余框。我已经向.change事件添加了一个警报以开始调试,但我发现它没有运行。因此,脚本从未真正被调用 我做错了什么 {% extends "layout.html" %} {% block head %}<head> {% block title %}Home{% endblock %} <script src="//ajax.googleapis.com/ajax/libs/j

我正在尝试在jinja2模板中使用一些jquery。预期的行为是,选中SelectAll框将选中其余框。我已经向.change事件添加了一个警报以开始调试,但我发现它没有运行。因此,脚本从未真正被调用

我做错了什么

{% extends "layout.html" %}
{% block head %}<head>
{% block title %}Home{% endblock %}
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(':checkbox[name=selectAll]').change (function () {
    $(':checkbox[name=instances]').prop('checked', this.checked);
    alert("FOO");
});
</script>
</head>
{% endblock %}
{% block body %}

<form target="" method="GET" id="testform">
<div>
Select All: <input type="checkbox" name="selectAll" id="selectAllInstances" /> <br />
    {% for k in tests %}
    <input type="checkbox" name="instances" value="{{ k[1].mongo_id }}">{{ k[0] }} <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Description: {{ k[1].__doc__ }} <br />
    {% endfor %}
</div>
    <br />
    <br />
    <input type="submit">
</form>
{% endblock %}
{%extends“layout.html”%}
{%block head%}
{%block title%}主页{%endblock%}
$(':复选框[name=selectAll]')。更改(函数(){
$(':checkbox[name=instances]').prop('checked',this.checked);
警惕(“FOO”);
});
{%endblock%}
{%block body%}
全选:
{测试中k的%s%} {{k[0]}}
描述:{{k[1].\uuuuu doc\uuuuuuu}}
{%endfor%}

{%endblock%}
该模板是一种误导。在将事件处理程序绑定到它们的脚本运行时,您的复选框不存在

你有几个选择

  • 将脚本元素移动到HTML中复选框后的某个点
  • 将脚本包装到函数中,并将调用延迟到稍后(例如,使用document.ready事件)
  • 使用而不是直接绑定

模板是一条红鲱鱼。在将事件处理程序绑定到它们的脚本运行时,您的复选框不存在

你有几个选择

  • 将脚本元素移动到HTML中复选框后的某个点
  • 将脚本包装到函数中,并将调用延迟到稍后(例如,使用document.ready事件)
  • 使用而不是直接绑定

您需要将jquery包装在document.ready中,即

$(function(){
   $(':checkbox[name=selectAll]').change (function () {
    $(':checkbox[name=instances]').prop('checked', this.checked);
    alert("FOO");
   });
});
如果没有它,脚本将在DOM元素准备好遍历之前运行

注:

是的缩写

$(document).ready(function(){
//your code
});

您需要将jquery包装在document.ready中,即

$(function(){
   $(':checkbox[name=selectAll]').change (function () {
    $(':checkbox[name=instances]').prop('checked', this.checked);
    alert("FOO");
   });
});
如果没有它,脚本将在DOM元素准备好遍历之前运行

注:

是的缩写

$(document).ready(function(){
//your code
});

当该行执行时:

$(':checkbox[name=selectAll]').change(...);
没有名为selectAll的复选框——它是在脚本下面定义的。将代码包装在.ready事件中:

$(document).ready(function(){
});

当DOM层次结构完全构建时(简单地说,当浏览器看到
时),将触发该事件。

执行此行时:

$(':checkbox[name=selectAll]').change(...);
没有名为selectAll的复选框——它是在脚本下面定义的。将代码包装在.ready事件中:

$(document).ready(function(){
});
当DOM层次结构完全构建时(简单地说,当浏览器看到
时),会触发事件。

document.ready函数:)您应该通读此文档以帮助学习基础知识文档。ready函数:)您应该通读此文档以帮助学习基础知识