document.getElementById不能用于jquery加载

时间:2017-06-09 05:26:25

标签: javascript php jquery html

我已经使用jquery load函数

加载了一个html文件

在我的 profile.blade.php

 <script type="text/javascript">
      $(document).ready(function(){
         $("#newJob").load('/company/new-job');
      });
    </script>
   <script src="js/location.js"></script>

在我的location.js我正在使用

document.getElementById('autocomplete')获取html元素

但此元素位于company/new-job文件

问题我在document.getElementById('autocomplete')这部分

中得到了未定义的错误

当我直接包含location.js工作正常

3 个答案:

答案 0 :(得分:0)

尝试使用$(document).ready(function(){ $("#newJob").load('/company/new-job', null, function(){ $.getScript('js/location.js'); }); }); 的回调函数插入您想要的脚本:

     $directory = "./images/";
     $config['upload_path']   = $directory; 
     $config['encrypt_name'] = TRUE; 
     $config['allowed_types'] = 'gif|jpg|png|jpeg';
     if (!$this->upload->do_upload('mainimage'))
     {          
        $error = array('error' => $this->upload->display_errors()); 
        print_r($error);
     }
     else { 
        $data = array('upload_data' => $this->upload->data()); 
        print_r($data);
     }

答案 1 :(得分:0)

您需要在location.js返回的html页面中加入/company/new-job才能使其正常运行。

或尝试加载以下js。 (未经测试)

$(document).ready(function(){
     $("#newJob").load('/company/new-job',function(data){
     //here you can get the elements from /company/new-job.
       $.getScript('js/location.js').done(function(data, textStatus, jqxhr) {
          //here you can call functions from location.js
       });         
     });
});

答案 2 :(得分:0)

您的脚本<script src="js/location.js"></script>$(document).ready(function()之前加载,您的元素将在文档准备就绪后加载.load mehtod。

所以这里需要做的是必须在元素渲染后添加脚本。否则document.getElementById('autocomplete')找不到元素并产生错误。

$(document).ready(function(){ 
$("#newJob").load("/company/new-job", function(responseTxt, statusTxt, xhr){
        if(statusTxt == "success")
           $.getScript('js/location.js');
        if(statusTxt == "error")
            alert("Error: " + xhr.status + ": " + xhr.statusText);
    });
});