我正在测试某个东西是什么类型的标签,无论是“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 的原型(prototype),但它永远无法识别它。
最佳答案
self
是 window
对象。您的字符串对象是 this
。要获取该字符串对象的值,您必须使用 valueOf
或 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");
}
// ...
}
注意:也许您想在 v
上使用 .toUpperCase
,然后再将其与那些大写的标签名称字符串进行比较,以防它们是小写的.
关于javascript - 当元素为标签 x 时如何执行功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43686627/