2014-12-20 40 views
1

我正在提煉翻譯腳本,腳本本身實際上工作正常(在大多數計算機上)。我們發現該腳本在母語不是英語的計算機上無法正常工作。是否有替代indexOf的jQuery?

的腳本如下:

$('.translation-links a').click(function(e) { 
     e.preventDefault(); 
     var lang = $(this).data('lang'); 
     $('#google_translate_element select option').each(function(){ 
     if($(this).text().indexOf(lang) != -1) { 
      $(this).parent().val($(this).val()); 
      var container = document.getElementById('google_translate_element'); 
      var select = container.getElementsByTagName('select')[0]; 
      triggerHtmlEvent(select, 'change'); 
     } 
    }); 
}); 

.translation-links a會是這樣的:

<li><a href="#" data-country="south-africa" data-lang="Afrikaans"><span class="south-africa"></span>Afrikaans</a></li> 

有問題的線是

if($(this).text().indexOf(lang) != -1) { 

我們將它縮小到通過故障排除,但我們想知道是否有另一種方式將它寫入possi bly防止這個問題。也許替代indexOf?我們不確定母語爲什麼很重要,所以如果有人對此有所瞭解,我們將不勝感激!

+0

你能告訴什麼是在'$(本).text'? – raina77ow

+0

$(This).text拉取用戶選擇的語言。所以如果他們點擊南非荷蘭語按鈕$(這個)將等於南非荷蘭語 –

+0

那麼'lang'中的內容呢?我的意思是,如果您將問題縮小到一行,您能否顯示這一行處理的整個數據集? – raina77ow

回答

1

您似乎應該在點擊元素的data-lang字符串和選項的value之間尋找匹配,這兩個元素都應該對翻譯免疫。

如果是的話,那麼它應該是簡單的:

$('.translation-links a').on('click', function(e) { 
    e.preventDefault(); 
    $('#google_translate_element select').eq(0).val($(this).data('lang')).trigger('change'); 
});