2013-12-18 48 views
1

我需要遍歷以下XML樹,以便找到字形,其中unicode=查找屬性爲Unicode字符串作爲價值

<?xml version="1.0" standalone="no"?> 
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
      "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > 
<svg xmlns="http://www.w3.org/2000/svg"> 
    <font> 
     <glyph unicode="&#xf0c5;"/> 
     <glyph unicode="&#xf005;"/> 
    </font> 
</svg> 

我怎樣才能做到這一點使用jQuery?

編輯

也許這是不明確的,但我希望通過自己的價值觀下unicode標籤訪問字形,因爲大多數這些打印的字符將在結束。

我知道,這是布萊恩工作$('svg').find('glyph[unicode=""]'),但有:

if (cond1) { 
    $('svg').find('glyph[unicode=""]'); 
} else if (cond2) { 
    $('svg').find('glyph[unicode=""]'); 
} else { 
    // ... 
} 

..是你永遠要保持的東西。

+0

更新了答案,找到了另一個方法 – Anton

+1

我認爲切割'&#x'和';'並留下字符串的有意義的部分是一個負擔得起的折衷,謝謝:) –

回答

3

這樣的事情?

$( 'SVG')。找到( '字形[unicode的=」 &#xf0c5" ]')

更新

我看到DOM改變後加載,所以你已經後搜尋,因此嘗試這種

$('svg').find('glyph[unicode=""]') 

更新

,可隨時更換& #X到\ u和使用選擇這樣

&#xf0c5;==\uf0c5 //hex to Escaped Unicode 
&#xf005;==\uf005 

所以對字形的選擇將是

if (cond1) { 
    $('svg').find('glyph[unicode="\uf0c5"]'); 
} else if (cond2) { 
    $('svg').find('glyph[unicode="\uf005 "]'); 
} else { 
    // ... 
} 

注:你不需要更新html

DEMO

+0

我想你是猜測。這不起作用。你試過了嗎? –

+0

@akoskm啊我檢查了控制檯,看到dom準備好後屬性發生了變化。所以我試了這個,它實際上工作:P'console.log($('svg')。find('glyph [unicode =「」]')。attr('unicode'))** ** DEMO:** http://jsfiddle.net/G8LPz/ – Anton

+0

如果我有750x,如果我想要'&#xf0c5;',我的選擇器應該如何在我的代碼中顯示?或者'&#xf005;',第一次'find('glyph [unicode =「」]')',第二次'find('glyph [unicode =「」]')'? :) –