2017-09-12 75 views
-1

我有一个HTML文件,我在其中导入JQuery以及自己的Javascript文件。当我把:JavaScript和JQuery访问HTML元素

<script> 
$("#htmlID").click(function() { 
    $("#htmlID").hide(); 
}); 
</script> 

在我的HTML文件,然后单击有问题的“htmlID”分区,它成功地隐藏它。但是,当我把:

$("#htmlID").click(function() { 
    $("#htmlID").hide(); 
}); 

在我的JavaScript文件,它不起作用。为什么是这样?

+0

把你的JavaScript文件放在你的jQuery导入脚本标签后面。 –

+0

要进行调试,请检查浏览器控制台。 –

+1

这三行将立即运行,所以如果你把它们放在实际的div上面,它们不会有任何影响。将你的代码包装在'$(function(){'和'});' - 这会在所有HTML加载完成后运行。 –

回答

4

尝试将其包装成以下几点:

$(document).ready(function(){ 
    $("#htmlID").click(function() { 
     $("#htmlID").hide(); 
    }); 
}); 
2

您需要告诉HTML文档,要执行的代码是一个脚本。脚本段可以作为文档的一部分。当DOM找到一个脚本部分时,它会将其作为页面的可执行部分处理,并执行该代码。

您可以将它作为函数在您的JavaScript文件中,从页面中的$(document).ready函数内调用它。

脚本文件中的代码不会自动执行,除非您将它作为IIFE(立即调用函数表达式)。如果你想使用JavaScript文件,你可以把它放在IIFE里面。

$(function(){ 
    $("#htmlID").click(function() { 
    $("#htmlID").hide(); 
}); 
})(); 
1

您需要首先把jQuery的呼叫,然后包括你的自定义的js文件是这样的:

<div id="htmlID"> 
Html ID element 
</div> 

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
<script src="custom.js"></script> 

在您的自定义JS你可以给:

$(document).ready(function() { 
    $("#htmlID").on("click", function() { 
    $(this).hide(); 
    }) 
}); 

演示:https://jsfiddle.net/ud0y0g6a/