jQuery document.ready不会触发,没有jQuery可以工作

时间:2018-05-02 20:18:39

标签: javascript jquery html ajax

我在这里看了几个其他类似的问题并尝试了以下内容:

  1. 将所有$更改为jQuery
  2. 确保我使用的是正确的src
  3. 使用jQuery.noConflict()
  4. 我正在尝试从html文件中的SQLite3数据库(工作正常)访问数据。

    <script src="jquery-3.3.1.min.js" type="text/javascript"></script>
    
    <script type="text/javascript">
    jQuery.noConflict();
    jQuery(document).ready(){console.log("HELLO");}
    </script>
    

    我无法获得控制台消息,无论我放在哪里!似乎我的jQuery都没有工作。

    这是我尝试访问数据的地方:

    <div class="panel-body">
      The website you're most active on:
      <select onchange="dropdown(this)">
      <option value='PastHour'>Past Hour</option>
      <option value='Past2Hours'>Past 2 Hours</option>
      <option value='PastDay'>Past 24 Hours</option>
    </select><br><br>
    
    
    <script type="text/javascript">
    
     if()
      <b>Most Frequently Visited:</b><div id="most-freq"></div>
      <b>Second Most Frequently Visited:</b><div id="most-freq-2"></div>
    
    </div>
    
    function dropdown(that) {
    
      const requestURL = 'data/' + that.value;
      jQuery.ajax ({
        url: requestURL,
        type: 'GET',
        dataType: 'json',
        success: (data) => {
        console.log('data:', data);
        console.log(data.Most);
        console.log(data.SecMost);
        jQuery('#most-freq').html(data.Most);
        jQuery('#most-freq-2').html(data.SecMost);
    }
    
    })
    
    }
    </script>
    

    我可以访问localhost / data并获取我想要查看的数据,所以我相信我的.js文件中的app.get函数没问题。

    除了未显示或打印到控制台的数据外,我还收到错误消息,即未定义下拉列表。我认为这是因为范围,我怎么能改变它?

4 个答案:

答案 0 :(得分:4)

您的代码应为:

jQuery(document).ready(function () {console.log("HELLO");});

而不是:

jQuery(document).ready(){console.log("HELLO");}

它不会抛出任何错误日志,因为没有错误。 使用正确的缩进很容易看出差异:

正确行为:

jQuery(document).ready(function () {
    console.log("HELLO");
});

行为错误:

jQuery(document).ready();
{
    console.log("HELLO");
}

答案 1 :(得分:0)

来自JQuery ready的文档link

当DOM完全加载时,JQuery有三种方法来执行javascript代码。这些是:

  • $(处理程序)
  • $(document).ready(handler)
  • $(&#34; document&#34;).ready(handler)

示例:

$(function(){ do something ... });

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

答案 2 :(得分:-1)

您的代码 function()是必需的。它指定在加载文档后运行的函数

jQuery(document).ready(){console.log("HELLO");}

如果您仍然遇到问题,请尝试以下操作:

参考:来自 https://learn.jquery.com/using-jquery-core/document-ready/的代码

$( document ).ready(function() {
    console.log( "ready!" );
});

答案 3 :(得分:-3)

jQuery不是为了调试目的。当事情发生时,你可以实例化控制台。

$('#buttonTest').click(function() {
  console.log('you click on buttonTest');
  // do something
});

由于某些原因,控制台对象可能不可用。然后你可以检查它是否 - 这很有用,因为你在部署到生产时不必删除调试代码:

if (window.console && window.console.log) {
  // console is available
}

我建议用这种方法使用val:

<select id="mySelect" onchange="myFunction($(this).val());">
<option value="testVaue">Ford F150<option>
</select>
function myfunction(mySelect){alert("my val from select: "+mySelect );}