正在删除本地化代码中的JQuery依赖项

Removing JQuery dependency in localization code

本文关键字:JQuery 依赖 代码 删除 本地化      更新时间:2023-09-26

我正在使用此javascript本地化我的Cordova/Phonegap应用程序。它依赖于JQuery,我不想使用它。这里的最后一位特别不起作用

      _results.push($(".l10n-" + key).html(value));

如何更改代码以删除该依赖项?谢谢

	var Localization;
	Localization = (function() {
	  function Localization() {}
	  Localization.initialize = function(dictionnary, fallback_language) {
		Localization.dictionnary = dictionnary;
		Localization.fallback_language = fallback_language;
		return navigator.globalization.getPreferredLanguage(Localization.get_preferred_language_callback, Localization.get_preferred_language_error_callback);
	  };
	  Localization.get_preferred_language_callback = function(language) {
		Localization.language = language.value;
		alert("Phone language is " + Localization.language);
		if (Localization.language in Localization.dictionnary) {
		  alert("It is supported.");
		} else {
		  Localization.language = Localization.fallback_language;
		  alert("It is unsupported, so we chose " + Localization.language + " instead.");
		}
		return Localization.apply_to_current_html();
	  };
	  Localization.get_preferred_language_error_callback = function() {
		Localization.language = Localization.fallback_language;
		alert("There was a error determining the language, so we chose " + Localization.language + ".");
		return Localization.apply_to_current_html();
	  };
	  Localization.apply_to_current_html = function() {
		var key, value, _ref, _results;
		alert("Localizing HTML file.");
		_ref = Localization.dictionnary[Localization.language];
		_results = [];
		for (key in _ref) {
		  value = _ref[key];
		  alert(value);
		  _results.push($(".l10n-" + key).html(value));
		  alert("result is " + _results);
		}
		return _results;
	  };
	  Localization["for"] = function(key) {
		return Localization.dictionnary[Localization.language][key];
	  };
	  return Localization;
	})();

您可以使用原生JS方法来更改这些元素的HTML:

Localization.apply_to_current_html = function() {
    var key, value, _ref, _results;
    _ref = Localization.dictionnary[Localization.language];
    _results = [];
    for (key in _ref) {
        value = _ref[key];
        var elements = document.querySelectorAll(".l10n-" + key);
        for (var i = 0; i < elements.length; i++) {
            elements[i].innerHTML = value;
            _results.push(elements[i]);
        }
    }
    return _results;
};

请注意,功能将是相同的,但是apply_to_current_html()函数现在将返回DOMElement对象的数组,而不是像以前那样返回jQuery对象的数组。

你还没有说明如何使用这个返回值的例子,所以我不能告诉你这可能会产生什么连锁反应。