Den*_*kov 10 javascript attributes function
我有这些函数来创建元素并更改其属性.你能给我一个如何修改它们的建议吗?
function create(elem) {
return document.createElementNS ? document.createElementNS("http://www.w3.org/1999/ xhtml", elem) : document.createElement(elem);
}
function attr(elem, name, value) {
if (!name || name.constructor != String) return "";
name = {"for": "htmlFor", "class": "className"}[name] || name;
if (typeof value != "undefined") {
elem[name] = value;
if (elem.setAttribute) elem.setAttribute(name, value);
}
return elem[name] || elem.getAttribute(name) || "";
}
Run Code Online (Sandbox Code Playgroud)
我希望得到像这样的东西('div',{'id':'test','class':'smth'});
function create(elem, attr) {
if (!attr) return document.createElementNS ? document.createElementNS("http://www.w3.org/1999/xhtml", elem) : document.createElement(elem);
if (attr) {
var el = document.createElementNS ? document.createElementNS("http://www.w3.org/1999/xhtml", elem) : document.createElement(elem);
for (var i = 0; i < attr.length; i++) {
attr(el, name[i], value[i]);
}
return el;
}
Run Code Online (Sandbox Code Playgroud)
}
请帮忙=]
Eri*_*rce -1
我会推荐一个像 jQuery 这样的 javascript 框架。他们已经实现了此功能。
$("<div/>", {
"class": "test",
text: "Click me!",
click: function(){
$(this).toggleClass("test");
}
}).appendTo("body");
Run Code Online (Sandbox Code Playgroud)