【问题标题】:how can i assign the html of a DOM element to my global variable?如何将 DOM 元素的 html 分配给我的全局变量?
【发布时间】:2015-12-16 16:30:48
【问题描述】:

我有一个全局变量“theClass”,我尝试在单击事件发生后分配 DOM 元素的内容,然后尝试在另一个页面上使用它,但它甚至没有被分配!这是在控制台中返回“false”的代码。我正在使用 jQuery。

var theClass = '';
var getCategories = false;

$(document).ready(function(){

  $(document).on("click", ".nav li a", function() {
    theClass = $(this).html();
    getCategories = true;
  });

  console.log(theClass+" "+getCategories);
});

【问题讨论】:

  • “另一页”是什么意思?如果点击后你加载了一个全新的页面,那么你的所有变量都被删除了。
  • 它是一个页面级别的变量。即使你刷新它也会消失。您不能转移到其他页面。

标签: javascript


【解决方案1】:

按照您的代码,我假设另一个页面实际上是指代码中的另一个位置。您的控制台日志在 ready 函数中被触发,但是,您正在设置/更新函数中的值。因此,您的日志记录不会按预期显示结果。

您可以尝试仅登录基于事件的函数。并且会看到第一个日志给出了默认值,然后随后的点击给出了更新的值。

你可以试试下面的方法

 $(document).on("click", ".nav li a", function() {
console.log(theClass+" "+getCategories);
theClass = $(this).html();
getCategories = true;

});

【讨论】:

  • 谢谢大家,刚刚看到一篇关于“localStorage”的帖子,看起来效果不错!不过谢谢!
  • @VincentHokie - 很好,你的问题得到了解决,但是,我建议你也理解这些概念。
  • 从您的回答中,我似乎明白更新和日志记录值不变的原因是因为它们在“就绪”函数中..true?
  • @VincentHokie - 在你的情况下,是的,但是,没有必要。简单的问题是您在更新之前访问。
  • 噢噢噢噢!因为,日志记录会立即触发准备功能完成!在此之前,没有任何值..
【解决方案2】:

如果您尝试在全局变量中设置任何值,那么它在特定会话中有效,当我尝试在另一个页面上使用它时,变量会使用全局值初始化为 false。

喜欢下面的帖子寻找另一种方式。

How can I pass values from one html page to another html page using javascript

【讨论】:

    猜你喜欢
    • 2017-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多