什么是$(“ <option>”,{value:“ thing1”,text:“ thing2”}))的javascript等价;

时间:2018-11-06 21:00:22

标签: javascript jquery

retVal.push($("<option>", { value: "thing1", text: "thing2" }));

我知道它返回一个JQuery<HTMLElement>对象,但是我不确定这样做的优雅方式,该方式不涉及字符串连接。

作为参考,我正在迭代KeyValuePairs的一个对象,并动态地为select html元素构建选项的集合。

编辑:完整的当前代码

ctl.append(ConvertStatusToDropdownItems());
...
var StatusEnum = { "thing1": 0, "thing2": 1, etc. };

function ConvertStatusToDropdownItems() {
var retVal = [];
for (const [key, value] of Object.entries(StatusEnum)) {
    retVal.push($("<option>", { value: value, text: key }));
}
return retVal;
}

关于它的价值,从技术上来说,我位于.Net Core 2.1站点中的Typescript文件中,并且似乎无法获取要加载的JQuery的定义。进一步考虑,鉴于此功能的全局性,这样做可能不是一个好主意。

1 个答案:

答案 0 :(得分:1)

使用JavaScript,我们可以创建一个辅助函数,以帮助我们复制JQuery方法的功能。

let create = (tag, opts = {}) => {
  return Object.assign(document.createElement(tag), opts); 
}

let create = (tag, opts = {}) => {
  return Object.assign(document.createElement(tag), opts); 
}

console.log( 
  create("option", { value: "thing1", textContent: "thing2"})  
);

注意,在普通DOM节点上没有text属性,只有textContent