由于某些奇怪的原因,下面的代码不起作用。
var xxx = localStorage.getItem('position');
var foo = document.querySelectorAll("div[current_position=' + xxx + ']");
for (var i = 0; i < foo.length; i++)
{
// ...
}
一些事实:
localStrorage
工作正确 - localStorage.getItem('position')
输出正确的值。这里没有错误。
current_position
是一个数字(1,2,3,......等)。如果我手动设置,例如'2'
,如下所示:
var foo = document.querySelectorAll("div[current_position='2']");
然后代码工作正常。但是,如果我将'2'
更改为' + xxx + '
,则无效。
原始问题已修改。感谢Bhojendra Nepal和Jonah Williams。
答案 0 :(得分:2)
您需要将变量与字符串连接起来:
var xxx = localStorage.getItem('position');
var foo = document.querySelectorAll("div[current_position=" + xxx + "]");
for (var i = 0; i < foo.length; i++)
{
// ...
}
此外,我建议您对有效的html5元素使用data-*
属性,因此请使用data-current-position
代替current_position
答案 1 :(得分:0)
问题是xxx
是指向localstorage的变量,而"xxx"
只是一个字符串。您需要将值插入字符串
document.querySelectorAll("div[current_position=" + xxx + "]");
答案 2 :(得分:0)
好的,我自己找到了解决方案。代码的第二行应该是:
var foo = document.querySelectorAll("div[current_position='" +xxx+ "']");
一切正常。