当元素是标记x时如何执行函数

时间:2017-04-28 18:23:07

标签: javascript html dom

我正在测试什么样的标签,无论是“IMG”,“H1”等。 我似乎无法让这些代码为我工作,不知道我哪里出错了。

    String.prototype.addFormElement = function(){


    if(self == "P"){
        console.log("I'm a paragraph");
    }
    else if(self == "IMG"){
        console.log("I'm a iamge");
    }
    else if(self == "A"){
        console.log("I'm a link");
    }
    else if(self == "H1" || 
                    self == "H2" || 
                    self == "H3" || 
                    self == "H4" || 
                    self == "H5" || 
                    self == "H6"){
        console.log("I'm a header");
    }
    else if(self == "TABLE"){
        console.log("I'm a table");
    }
    else if(self == "UL" || 
            self == "OL" || 
            self == "LI"){
        console.log("I'm a list");
    }
    else if(self == '#text'){
        console.log("shoot me");
    }
    else{
        console.log("Not recognize");
    }

    return 0;

}

//==============================================================================

//=============================================================================

    var ezgrp = document.getElementsByClassName("ez-group");


    for(var i = 0;i<ezgrp.length;i++){

        let ezchild = ezgrp[i].childNodes;


        for(var j = 0;j<ezchild.length;j++){

            var plz = "" + ezchild[j].nodeName.toString();
            plz.addFormElement();

        }
    }

这是JSFiddle

https://jsfiddle.net/xg342n6w/13/

无论它返回“未识别”

我将它转换为字符串,该函数是String的原型,但它永远不会识别它。

2 个答案:

答案 0 :(得分:0)

{{asset('path/to/css')}} self个对象。您的字符串对象是window。要获取该字符串对象的值,您必须使用thisvalueOf方法:

toString

注意:也许您希望在String.prototype.addFormElement = function() { var v = this.valueOf(); // get the value of this string if(v === "P"){ console.log("I'm a paragraph"); } else if(v === "IMG"){ console.log("I'm a iamge"); } // ... } 上使用.toUpperCase,然后再将其与那些未经验证的标记名称字符串进行比较,以防它们被小写。

答案 1 :(得分:0)

self没有标记的引用,您应该使用this而获取toString结果

if(this.toString() === "P"){
    console.log("Output: I'm a paragraph");
}

我已经为你更新了js小提琴:https://jsfiddle.net/xg342n6w/15/

我希望它有所帮助,一切顺利!