为什么我的jQuery不在本地工作?

mpd*_*pdc 2 javascript jquery click attr jsfiddle

我在jsfiddle.net上使用以下代码,并且实时预览有效.运行我自己的本地副本,没有...

复选框应在radiobutton click上更改.

jsfiddle预览:http://jsfiddle.net/XqFDN/

<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" ></script>
    <script>
        jQuery('#3day').click(function () {
            jQuery('#mon , #tue , #wed').attr('checked', true);
        });
        jQuery('#2day , #1day').click(function () {
            jQuery('#mon , #tue , #wed').attr('checked', false);
        });
    </script>
</head>

<body>
    <form>
        <input type="radio" name="passes" value="3day" id="3day" />3-Day
        <input type="radio" name="passes" value="2day" id="2day" />2-Day
        <input type="radio" name="passes" value="1day" id="1day" />1-Day
        <br />

        <input type="checkbox" name="mon" value="mon" id="mon" />Mon
        <input type="checkbox" name="tue" value="tue" id="tue" />Tue
        <input type="checkbox" name="wed" value="wed" id="wed" />Wed
        <br />
    </form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

Ror*_*san 8

您需要将jQuery代码包装在文档就绪处理程序中.试试这个:

<script type="text/javascript">
    jQuery(function() { // alternative: $(document).ready(function() {
        jQuery('#3day').click(function () {
            jQuery('#mon , #tue , #wed').attr('checked', true);
        });
        jQuery('#2day , #1day').click(function () {
            jQuery('#mon , #tue , #wed').attr('checked', false);
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

此机箱确保在加载DOM时运行其中的代码.目前,您的代码正在尝试将click事件附加到尚不存在的元素.

  • 正确.粘贴的小提琴起作用,不是因为它在DOMReady上执行,而是因为它在BODY的底部执行. (2认同)