关于jQuery XML select的转义点

时间:2012-11-16 16:35:48

标签: javascript jquery xml

我有一个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,'\\\\.')) => []

任何人都可以帮助我?

2 个答案:

答案 0 :(得分:1)

“computer.always”.replace(/./ g,'\\。')无效,因为您只需要“computer \ .always”。

因此,如果您这样做,它应该有效。

$(xml).find( "computer " + "computer.always".replace(/./g,'\\.') )

希望它有所帮助。

答案 1 :(得分:0)

实际上,我的错误是使用double \,因此控制台使用它来回显而不是我的代码。我的解决方案是使用:

$(xml).find("computer.always".replace(/\./g,'\\.'))