JS全局变量读取未定义

时间:2017-08-31 04:01:25

标签: javascript global-variables

我全局定义了变量Product ID

      var ProductID = {};

然后我将元素的点击ID分配给全局变量

       (function($){
                    $(document).on('click', '.text-left', (function(){

                      ClickedProductId = $(this).closest("td").prop('id');
                   ProductID.value = ClickedProductId;
                        console.log(ClickedProductId);
                        console.log(ProductID.value);

                   }));

                })(jQuery);

我能够验证clickedID是否已从上面的日志中添加到控制台的ProductID中。

现在我想在新函数中使用相同的ProductID.value,但ProductID.value变得未定义。

  function OPENITEMDETAIL(){
                        console.log(ProductID.value);

                  $('.ProductDetail').addClass('is-visible');
                 }

我需要在其他函数中使用ProductID.value。我究竟做错了什么?我该怎么解决? 这是完整的代码

html

                           <td class="text-left" id="${key}" onclick="OPENITEMDETAIL();"><a href>${key}</a href></td>

的Javascript

        (function($){
                    $(document).on('click', '.text-left', (function(){

                      ClickedProductId = $(this).closest("td").prop('id');
                   ProductID.value = ClickedProductId;
                        console.log(ClickedProductId);

                   }));

                })(jQuery);


  // VIEW ITEM DETAIL 


  function OPENITEMDETAIL(){
              console.log("ITEm DETAIL VIEW opened and activated");
                        console.log(ProductID.value);
              event.preventDefault();


                  $('.ProductDetail').addClass('is-visible');

                var productcontainer = document.getElementById('ProductDetailPage'); 
                   productcontainer.innerHTML = '';


                firebase.auth().onAuthStateChanged((user) => {
                if (user) {
                    database = firebase.database();

                    var BusinessesId = firebase.auth().currentUser.uid;

                    return database.ref('/Businesses/' + BusinessesId + '/Inventory/' + ItemID.value ).once('value').then(function(snapshot) { 


                                       var ProductResults = snapshot.val();
                                        var ResultCard = `
                                             ......


                                            `
                                            productcontainer.innerHTML += ResultCard;

                    })

              }
              })
            }

1 个答案:

答案 0 :(得分:-2)

由于ProductID是变量,因此直接使用&#39; =&#39;为其指定值。标志。   例如,如果您希望它是一个数组,ProductID = [ClickedProductId]

例如,只是一个原始值,然后是ProductID = ClickedProductId