gpt4 book ai didi

javascript 变量显示在 console.log 中但不在浏览器输出中

转载 作者:行者123 更新时间:2023-12-03 00:22:08 27 4
gpt4 key购买 nike

我正在尝试重用年份变量的输出。稍后我需要在多个函数中重用更新后的值[基于 hashchange]。它在浏览器控制台中显示正确的值,但在浏览器中不显示。

<html>
<body>
<p></p>
<a href="#2018-01">1</a>
<a href="#2018-02">2</a>
</body>
<script>
location.hash = '#2019';
showHash();
var p = document.querySelector('p');
p.innerHTML = window.year;

function showHash() {
return year = location.hash;
}
window.onhashchange = showHash;
</script>
</html>

最佳答案

通过将 location.hash 分配给 year,您不会修改 p.innerHTMLyearp.innerHTML 没有引用彼此的值。当您按如下方式初始化时:

p.innerHTML = window.year;

year 的值已复制,因此现在您有两个值,它们当时恰好相同,但它们没有链接,因此如果您分配一个新值,它也会更新另一个。不,它们不是引用。

因此,在事件处理程序中,您还应该将新哈希分配给 p.innerHTML,或者更好 - 因为哈希是文本 - 将其分配给 p.textContent >:

var p = document.querySelector('p');
var year;

function showHash() {
// Assign both to textContent and year (they are independent)
p.textContent = year = location.hash;
// Maybe call some other functions which need to know about `year`
manage();
}

function manage() {
console.log(year);
// ... etc
}

window.onhashchange = showHash;

location.hash = '#2019'; // This triggers showHash, no need to call it explicitly
<p></p>
<a href="#2018-01">1</a>
<a href="#2018-02">2</a>

关于javascript 变量显示在 console.log 中但不在浏览器输出中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54270687/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com