Javascript jQuery选择器不在脚本中工作,但在控制台中工作

Javascript jQuery选择器不在脚本中工作,但在控制台中工作,javascript,jquery,html,Javascript,Jquery,Html,这确实是一个非常奇怪的问题,我希望它很简单。我无法在html文档中获得简单的select和append操作,但当我在chrome浏览器控制台中时,它可以工作 <html> <head> <script src="https://code.jquery.com/jquery-1.12.3.min.js" integrity="sha256-aaODHAgvwQW1bFOGXMeX+pC4PZIPsvn2h1sArYOhgXQ=" crossorigin="anon

这确实是一个非常奇怪的问题,我希望它很简单。我无法在html文档中获得简单的select和append操作,但当我在chrome浏览器控制台中时,它可以工作

<html>
<head>
<script src="https://code.jquery.com/jquery-1.12.3.min.js" integrity="sha256-aaODHAgvwQW1bFOGXMeX+pC4PZIPsvn2h1sArYOhgXQ="   crossorigin="anonymous"></script>
<script src="/js/script.js"></script>
<script>
$('[data-js="works"]').append("hello");
</script>
</head>
<body>
<div data-js="works"></div>
test

</body>
</html>

$('[data js=“works”]')。追加(“hello”);
测试
当我把这行脚本放在控制台中时,hello出现在test上面。当我刚刚打开页面时,测试就在那里。我之前正在运行此页面中的脚本,但当我尝试选择一个元素时,它不起作用。然后我转到内联脚本,看看它是否可以在那里工作,不。我已经看到它是否可以在没有导入脚本的情况下从内联脚本工作,也不。控制台没有bug信息。如果需要,我可以将该内联脚本打印到控制台,但该代码仍然无法正常运行


与我的本地httpserver不兼容,也不能像本地打开的文件一样工作。

尝试以下方法,希望它能解决您的问题

(function($) {  // This will solve namespace problem (if any)
    // Write your JQuery code here
})(jQuery);

要么将.js文件放在正文的末尾,要么将js代码放在
$(document).ready(function(){//code inside})

之间,这是因为脚本是在加载页面之前执行的,所以目标div还不存在

解决方案是等待页面完全加载后再执行操作。
$
功能可用于此目的。给它一个回调,它将在页面加载后执行

您还可以使用
window.addEventListener(“加载”,回调)不需要
jQuery


$(函数(){
$('[datajs=works]')。追加(“hello”);
});
测试

在页面上存在实际元素之前,您正在运行JS。将脚本放在结束正文标记之前,或将其包装在文档就绪调用中。