Javascript SVG<;g>;使用localStorage.getItem()进行选择
我的网页包含两个Javascript SVG<;g>;使用localStorage.getItem()进行选择,javascript,jquery,html,svg,Javascript,Jquery,Html,Svg,我的网页包含两个,它们相互引用两个html文件,其中包含一个SVG。在file1.html中,我单击一个svg元素,生成一个id编号,并通过 localStorage.setItem(“element1id”,ID1) file2.html中的SVG也使用与相同的ID1…,因此我检索ID1,尝试查找元素并分配var,并使用以下代码添加一些属性: var selectedID=localStorage.getItem(“element1id”) $(“#”+selectedID+”).attr(*
,它们相互引用两个html文件,其中包含一个SVG。在file1.html
中,我单击一个svg元素,生成一个id
编号,并通过
localStorage.setItem(“element1id”,ID1)
file2.html
中的SVG也使用与相同的ID1
…
,因此我检索ID1
,尝试查找元素并分配var
,并使用以下代码添加一些属性:
var selectedID=localStorage.getItem(“element1id”)
$(“#”+selectedID+”).attr(*添加一些新属性*)
使用此代码控制台,我会看到未捕获错误:语法错误,无法识别的表达式:'#0BTBFw6f90Nfh9rP1dlXrr'
。(正如您猜测的,这个长字符串是ID1
)
我通过手动写入ID1
重新检查选择,如下所示:
$("#0BTBFw6f90Nfh9rP1dlXrr").attr(*adding some new attributes*)
在这种情况下,没有问题。它查找
元素并添加属性。
以前有人遇到过这个问题吗?还是我错过了什么。?谢谢。尝试更换
$("'#"+selectedID+"'").attr(*adding some new attributes*);
与
在代码中在构造动态查询字符串时添加了单引号字符,导致语法错误。感谢您的评论。我更改了引号,但它再次给出了相同的错误:
Uncaught error:Syntax error,无法识别的表达式:“\0BTBFw6f90Nfh9rP1dlXrr”
@JeremyBanks在DOM中,id可以以数字开头,但它不是有效的CSS标识符,因此应该改用[id=“0BTBFw6f90Nfh9rP1dlXrr”
。啊!!这么容易犯的错误。效果很好。感谢使用CSS.escape来阻止CSS注入。
$("#"+selectedID).attr(*adding some new attributes*);