为什么我收到错误Uncaught TypeError:无法读取属性' insertAdjacentHTML'在renderHTML中为null

时间:2018-03-27 00:06:15

标签: ruby-on-rails json ajax rendering

如何获取我的信息以呈现并且不显示错误?我正在关注视频,而且我还有其他一些可能会或可能不会影响它的控制台错误。



var bitprice = document.getElementById('bitprice');

$( document ).ready(function() {

    var bitcoin = new XMLHttpRequest();
    bitcoin.open('GET', "https://api.coindesk.com/v1/bpi/currentprice.json");
    bitcoin.onload = function() {
        // console.log(bitcoin.responseText);
        var bitdata = JSON.parse(bitcoin.responseText);
        // console.log(bitdata.bpi.USD.rate);
        renderHTML(bitdata.bpi.USD.rate);
    };
    bitcoin.send();

});

function renderHTML(data) {
    bitprice.insertAdjacentHTML('beforeend',"test")
}

<!DOCTYPE html>
<html>
<head>
  <title>Bitview</title>
  <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
  <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
  <%= csrf_meta_tags %>
</head>
<body>

<%= yield %> (Inside the yield is as follows <div id="bitprice"></div>)
 <script type="text/javascript" src="app/assets/javascripts/js.js"></script>
</body>

</html>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

为什么var bitprice在使用它的函数之外?尝试在函数内部定义它,它应该可以工作。

有一个关于被称为“范围”的东西要学习。 javascript的工作方式 - 由于范围的工作方式,函数内部的某些内容可能在函数内部不可见。值得在Google上搜索一两篇好文章。

相关问题