我有一个XML:
<computers>
<computer>
<description>Description</description>
<computer.always></computer.always>
</computer>
</computers>
所以我想访问computer.always元素,所以我用它:
$(xml).find('computer ' + "computer.always".replace(/\./g,'\\\\.'))
找不到元素。 (我写了“computer.always”.replace(/./ g,'\\。'),因为“computer.always”可以是一个变量,我需要让这个选择器动态化。)
奇怪的是:
当我这样做时:
$(xml).find('computer computer\\.always') // Element found
找到我的元素。
但是当我使用“computer.always”.replace(/./ g,'\\。')的结果时,它失败了。
"computer.always".replace(/\./g,'\\\\.') // return "computer computer\\.always" in the console
$(xml).find("computer.always".replace(/\./g,'\\\\.')) => []
任何人都可以帮助我?
答案 0 :(得分:1)
“computer.always”.replace(/./ g,'\\。')无效,因为您只需要“computer \ .always”。
因此,如果您这样做,它应该有效。
$(xml).find( "computer " + "computer.always".replace(/./g,'\\.') )
希望它有所帮助。
答案 1 :(得分:0)
实际上,我的错误是使用double \,因此控制台使用它来回显而不是我的代码。我的解决方案是使用:
$(xml).find("computer.always".replace(/\./g,'\\.'))