繁体   English   中英

变量不起作用

[英]Variable doesn't work

由于某些奇怪的原因,下面的代码无法正常工作。

var xxx = localStorage.getItem('position');
var foo = document.querySelectorAll("div[current_position=' + xxx + ']");
for (var i = 0; i < foo.length; i++)
{
    // ...
}

一些事实:

  1. localStrorage工作正常localStrorage localStorage.getItem('position')输出正确的值。 这里没有错误。

  2. current_position是一个数字(1、2、3等)。 如果我手动设置,例如'2' ,如下所示:

     var foo = document.querySelectorAll("div[current_position='2']"); 

    然后代码按预期工作。 但是,如果我将'2'更改为' + xxx + ' ,则无法使用。

原始问题已编辑。 感谢尼泊尔Bhojendra和Jonah Williams。

您需要将变量与字符串连接起来:

var xxx = localStorage.getItem('position');
var foo = document.querySelectorAll("div[current_position=" + xxx + "]");
for (var i = 0; i < foo.length; i++)
{
    // ...
}

此外,我建议您将data-*属性用于有效的html5元素,因此请使用data-current-position而不是current_position

问题是xxx是一个指向localstorage的变量,而"xxx"只是一个字符串。 您需要将值插入字符串,

document.querySelectorAll("div[current_position=" + xxx + "]");

好的,我自己找到了解决方案。 代码的第二行应为:

var foo = document.querySelectorAll("div[current_position='" +xxx+ "']");

和所有的作品。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM