2013-02-15 53 views
0

我有一些法語數字最多爲24作爲段落元素中的文本(有些出現多次),我想通過它們並添加相關的英語翻譯爲標題屬性。我有一個解決方案,但我不認爲它是最高效的,所以我只是尋找一些幫助來寫一些更好的東西,如果可能的話,並且對你的解決方案感興趣。使用javascript/jQuery爲元素添加標題的最有效方法

感謝

回答

4

創建一個翻譯對象,其中key是法語數量和value是英文翻譯。

var translations = { 
    "un" : "one", 
    "deux" : "two", 
    ... 
}; 
$('.demonstration [class*="col"] p').each(function() { 
    var $this = $(this); 
    $this.attr('title', translations[$this.text().replace(/\s+/g, '')]); 
}); 
+0

如何當數字不在列表中?我的答案使用'||空'來彌補這一點。 – alijsh 2013-02-15 10:36:55

+0

@alijsh如果該數字不在列表中,則嘗試訪問它將返回「未定義」,並且不會設置標題屬性。 – 2013-02-15 10:59:18

0

您可以定義一個列表:

var nums = { 'un': 'one', 'deux': 'two', ... } 

,然後替換switch本:

$(this).attr('title', nums[$(this).text().replace(/\s+/g, '')] || null); 

注意|| null是當數不在列表即它就像default部分switch

1

使用A rrays和Objects代替:

var myTitles = { vingtquatre : 'twenty four', vingtdeux: 'twenty two' }; // add your other keys and values here in that same format, no matter what the order is inside. 

$(this).attr('title', myTitles[$(this).text().replace(/\s+/g, '')]); 
相關問題