将对象中键的任何出现(内部)更改为键值

时间:2019-04-17 14:43:52

标签: javascript jquery object for-loop key-value

我只是想全局翻译一些单词。我的翻译是在一个对象中,其中键是原始单词,值是翻译。 但是我无法执行我的功能,我想念什么?

jQuery(document).ready(function() {
if (window.location.href.indexOf("sv") > -1) {
  var translations = {
    'All': 'alla',
    'Filter Members': 'Filtrera medlemar',
  }

  for (var key in translations) {
    if (translations.hasOwnProperty(key)) {
      console.log(key + " -> " + translations[key]);

      $allItems = jQuery("body *").children();

      $allItems.each(function() {
        $this = jQuery(this);
        $this.html().replace(key, translations[key]);
      });
    }
  }

1 个答案:

答案 0 :(得分:0)

您需要将新值传递给html()方法。字符串是不可变的调用函数,不会更改原始字符串。

第二个问题是您正在声明全局变量。您应该使用letconst

jQuery(document).ready(function () {
    if(window.location.href.indexOf("sv") > -1) {
      //CUSTOM TRANSLATIONS

     var translations = {
          'All' : 'alla',
          'Filter Members' : 'Filtrera medlemar',
     }



    for (var key in translations) {
    if (translations.hasOwnProperty(key)) {
        console.log(key + " -> " + translations[key]);

        const $allItems =  jQuery("body *").children();

        $allItems.each( function() {
            const $this = jQuery(this);
                $this.html($this.html().replace(key, translations[key]));

        });
    }
}