在jQuery中将参数值组合为变量名

时间:2018-07-16 06:26:17

标签: javascript jquery html ckeditor ckeditor4.x

我正在尝试将'en'作为参数传递给测试函数。但我不知道如何将参数值传递给变量以将其重用于其他语言。谁能帮我这个?预先感谢

function test() {

  var en_ed = CKEDITOR.instances["story_html"].getData();
  var en_ed_text = en_ed;
  en_ed_text = en_ed_text.replace(/\s/g, "");
  en_ed_text = removeHTMLTags(en_ed_text);
  en_ed_text = Encoder.htmlDecode(en_ed_text);

  if (en_ed_footer == en_ed_text) {
    en_ed_text = "";
  }

}

编辑 我想调用这样的函数-function test(zh); en,de ...要作为参数传递给此测试函数。

实际上,我现在是用英语编写此功能的。我想将其重用于其他语言。为此,我想将其他语言传递给此函数。一旦我通过了'de'lang,就应该指定为-

var de_ed = CKEDITOR.instances["story_html"].getData();
var de_ed_text = de_ed;

2 个答案:

答案 0 :(得分:1)

假定使用一个全局变量来按语言保存您的编辑器,请尝试以下操作。
我建议不要使用Windows作用域(window[lang+"_ed"])来保存var,而要拥有自己的全局var

var editors = {};
editors["en"].footer = ".....";
editors["de"].footer = ".....";

function test(lang) {
  var ed = CKEDITOR.instances["story_html"].getData()
  var text = ed.replace(/\s/g, "");
  text = removeHTMLTags(text);
  text = Encoder.htmlDecode(text);

  editors[lang].text = editors[lang].footer == text ? "": text;
}

答案 1 :(得分:1)

任何使用var关键字声明的变量,都可以使用window["var_name"]

访问

例如var test ="hello";window["test"]相同 您可以将参数传递给window[]以获得所需的动态变量命名。

您可以执行以下操作:

伪代码

function test(lang) {

  window[lang+"_ed"] = CKEDITOR.instances["story_html"].getData();
  window[lang+"_ed_text"] = window[lang+"_ed"];
  window[lang+"_ed_text"] = window[lang+"_ed_text"].replace(/\s/g, "");
  window[lang+"_ed_text"] = removeHTMLTags(window[lang+"_ed_text"]);
  window[lang+"_ed_text"] = Encoder.htmlDecode(window[lang+"_ed_text"]);

  if (window[lang+"_ed_footer"] == window[lang+"_ed_text"]) {
    window[lang+"_ed_text"] = "";
  }

}

测试电话

<input type="button" onclick='test("en")' value="ën" />
<br/>
<input type="button" onclick='test("de")' value="de" />