Node.innerHTML 以小写形式给出标签名称

Dya*_*nth 5 javascript dojo innerhtml

我正在迭代NodeList以获取Node数据,但是在使用Node.innerHTML时,我获取了小写的标记名称。

实际标签

<Panel><Label>test</Label></Panel>
Run Code Online (Sandbox Code Playgroud)

作为给予

<panel><label>test</label></panel>
Run Code Online (Sandbox Code Playgroud)

我需要这些标签。是否可以用正则表达式得到它?我正在将它与 dojo 一起使用(在 dojo 中有什么方法吗?)。

var xhrArgs = {
            url: "./user/"+Runtime.userName+"/ws/workspace/"+Workbench.getProject()+"/lib/custom/"+(first.type).replace(".","/")+".html",
            content: {},
            sync:true,
            load: function(data){
                var test = domConstruct.toDom(data);
                dojo.forEach(dojo.query("[id]",test),function(node){
                    domAttr.remove(node,"id");
                });
                var childEle = "";
                dojo.forEach(test.childNodes,function(node){
                    if(node.innerHTML){
                            childEle+=node.innerHTML;
                    }
                });
                command.add(new ModifyCommand(newWidget,{},childEle,context));
            }
    };
Run Code Online (Sandbox Code Playgroud)

orb*_*orb 0

我需要花一点时间才能用正则表达式解决这个问题,但你可以使用这个:

    var str = '<panel><label>test</label></panel>';
    chars = str.split("");
    for (var i = 0; i < chars.length; i++) {
        if (chars[i] === '<' || chars[i] === '/') {
           chars[i + 1] = chars[i + 1].toUpperCase();
        }
    }
    str = chars.join("");
Run Code Online (Sandbox Code Playgroud)

jsFiddle

我希望它有帮助。