Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将Jquery与html结合使用_Javascript_Jquery_Html - Fatal编程技术网

Javascript 将Jquery与html结合使用

Javascript 将Jquery与html结合使用,javascript,jquery,html,Javascript,Jquery,Html,我的jQuery不工作,我不知道我做错了什么 该按钮用于隐藏段落,并在我按下时将其带回来。 已将html和toggle.js代码放入其中。 我正在从名为js的文件夹中引用jquery库 HTML <DOCTYPE = html> <html lang = "en"> <head> <meta charset = "utf-8"> <script src= "js/jquery-1.6.2.js"></script

我的
jQuery
不工作,我不知道我做错了什么

该按钮用于隐藏段落,并在我按下时将其带回来。
已将html和
toggle.js
代码放入其中。
我正在从名为
js
的文件夹中引用
jquery

HTML

<DOCTYPE = html>
<html lang = "en">
<head>
    <meta charset = "utf-8">
    <script src=  "js/jquery-1.6.2.js"></script>
    <script src = "js/toggle.js"></script>

    <title>Jquery Example</title>
</head>
<body>
    <input type = "button" value = "Hide" id = "toggle_message"/>
    <p id = "message">You can see this paragraph</p>
</body>
</html>

尝试用
$(function(){})包装代码
它可能还无法访问DOM。
e、 g

看看这个

<!DOCTYPE html>
<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    </head>
    <body>
        <input type = "button" value = "Hide" id="toggle_message"/>
        <p id = "message">You can see this paragraph</p>
    </body>
    <script type="text/javascript">
        $(document).ready( function () {
            $('#toggle_message').click(function() {        
                var value = $('#toggle_message').attr('value');
                $('#message').toggle('fast');

                if (value == 'Hide') {
                    $('#toggle_message').attr('value', 'Show');
                } else if (value == 'Show') {
                    $('#toggle_message').attr('value','Hide');
                }
            });
        });
    </script>
</html>

您可以看到这一段

$(文档).ready(函数(){ $(“#切换_消息”)。单击(函数(){ var value=$('#toggle_message').attr('value'); $('#message')。切换('fast'); 如果(值==“隐藏”){ $(“#切换#消息”).attr('value','Show'); }else if(值=='Show'){ $(“#切换#消息”).attr('value','Hide'); } }); });
您的
单击
处理程序甚至在您的元素出现在DOM中之前就已连接到DOM

将代码放入
toggle.js
中,如下所示:

$(function(){
  // your code here

});
或者,您可以将脚本标记放置在元素实际附加到DOM之后,如:

<DOCTYPE = html>
<html lang = "en">
<head>
    <meta charset = "utf-8">
    <script src=  "js/jquery-1.6.2.js"></script>


    <title>Jquery Example</title>
</head>
<body>
    <input type = "button" value = "Hide" id = "toggle_message"/>
    <p id = "message">You can see this paragraph</p>

    <script src = "js/toggle.js"></script>
</body>
</html>

Jquery示例

您可以看到这一段

试试这个

<body>
    <input type = "button" value = "Hide" id = "toggle_message"/>
    <p id = "message">You can see this paragraph</p>
</body>


<script>
    $(function(){
        $('#toggle_message').click(function() {

            var value = $('#toggle_message').attr('value');
            $('#message').toggle('fast');

            if (value == 'Hide') {
              $('#toggle_message').attr('value', 'Show');
            } else if (value == 'Show') {
              $('#toggle_message').attr('value','Hide');
            }

        });
    });
</script>

您可以看到这一段

$(函数(){ $(“#切换#消息”)。单击(函数(){ var value=$('#toggle_message').attr('value'); $('#message')。切换('fast'); 如果(值==“隐藏”){ $(“#切换#消息”).attr('value','Show'); }else if(值=='Show'){ $(“#切换#消息”).attr('value','Hide'); } }); });
正如您所见,您的代码运行良好

在您的例子中没有这样做的原因是因为DOM是在javascript代码运行之后加载的,所以您需要将代码包装到document ready中

$(document).ready()


或者是一个自调用的匿名函数,或者更好的方法是在结束体标记之前包含脚本,以便它在加载DOM后运行

您的代码可以正常工作,只需将您的
toggle.js
代码放入一个类似
$(document).ready(){}

您的
toggle.js
应该是-

$( document ).ready() {
 $('#toggle_message').click(function() {

  var value = $('#toggle_message').attr('value');
  $('#message').toggle('fast');

  if (value == 'Hide') {
    $('#toggle_message').attr('value', 'Show');
  } else if (value == 'Show') {
    $('#toggle_message').attr('value','Hide');
  }
 });
}
并始终在页面底部,即
标记之前包含Javascript文件。

我在脚本顶部缺少“$(文档).ready(函数()”。谢谢大家。
<body>
    <input type = "button" value = "Hide" id = "toggle_message"/>
    <p id = "message">You can see this paragraph</p>
</body>


<script>
    $(function(){
        $('#toggle_message').click(function() {

            var value = $('#toggle_message').attr('value');
            $('#message').toggle('fast');

            if (value == 'Hide') {
              $('#toggle_message').attr('value', 'Show');
            } else if (value == 'Show') {
              $('#toggle_message').attr('value','Hide');
            }

        });
    });
</script>
$( document ).ready() {
 $('#toggle_message').click(function() {

  var value = $('#toggle_message').attr('value');
  $('#message').toggle('fast');

  if (value == 'Hide') {
    $('#toggle_message').attr('value', 'Show');
  } else if (value == 'Show') {
    $('#toggle_message').attr('value','Hide');
  }
 });
}