2012-11-16 46 views
1

我有一個XML:逃生jQuery的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

事實上,我的錯誤是使用雙\,所以控制檯使用它來回聲,但不是我的代碼。我的解決辦法是使用:

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

「computer.always」.replace(/./ g,'\\。')不工作,因爲您只需要「computer \ .always」。

所以,如果你這樣做,它應該工作。

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

希望它能幫助。

+0

您的解決方案是行不通的 – Sebastien

+0

對此深感抱歉,計算器捉弄我,從此以後「\\」。只顯示'\',但似乎你已經找到了解決方案。我修正了它的想法。 – darks

+0

你也必須使用/\./g,並且我接受你的答案 – Sebastien