1

私はXMLを持っています:

<computers>
  <computer>
    <description>Description</description>
    <computer.always></computer.always>
  </computer>
</computers>

だから私はcomputer.always要素にアクセスしたいので、これを使用します:

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

そして、要素が見つかりません。(「computer.always」は変数である可能性があり、このセレクターを動的にする必要があるため、「computer.always」.replace(/./ g、'\\。')と記述しました。)

奇妙なことは:

私がする時 :

$(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」が必要なため、「computer.always」.replace(/./ g、'\\。')は機能しません。

したがって、代わりにこのようにすると、機能するはずです。

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

それが役に立てば幸い。

于 2012-11-16T17:08:47.557 に答える
0

実際、私のエラーはdouble \を使用することだったので、コンソールはそれをエコーに使用しますが、コードは使用しません。私の解決策は使用することでした:

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