1

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

任何人都可以帮助我吗?

4

2 回答 2

1

"computer.always".replace(/./g,'\\.') 不起作用,因为您只需要 "computer\.always"。

因此,如果您这样做,它应该可以工作。

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

希望能帮助到你。

于 2012-11-16T17:08:47.557 回答
0

事实上,我的错误是使用双 \,所以控制台使用它来回显而不是我的代码。我的解决方案是使用:

$(xml).find("computer.always".replace(/\./g,'\\.'))
于 2012-11-20T10:13:02.290 回答