【发布时间】:2017-03-02 11:38:41
【问题描述】:
在我的代码中,
function ElementBase(name) {
this.tagName = typeof name != "" ? name : 'div';
this.createElem();
}
ElementBase.prototype = {
createElem: function() {
this.elem = document.createElement(this.tagName);
},
getIndex: function() {
var nodes = this.elem.parentNode.childNodes,
node;
var i = count = 0;
while ((node = nodes.item(i++)) && node != this.elem)
if (node.nodeType == 1) count++;
return (count);
}
};
我尝试创建的DOM元素标签是“div”。
function Div() {
this.tagName = 'div'
ElementBase.call(this, this.tagName);
}
Div.prototype = Object.create(ElementBase.prototype);
我的问题是,
1) 插入创建的对象后如何从html文档中访问getIndex函数? 示例:
var div = new Div();
div.id = "d1"
document.body.appendChild(div.elem);
// After div.getIndex() working
然后在某些情况下,我需要文档中该 div (id="d1") 元素的索引值。
var d= document.getElementById("d1");
d.getIndex() //not working
我在上面的代码中犯了什么错误?
谢谢提前..
【问题讨论】:
-
它看起来像基于 java 的结构和语法。它可能仅对我的代码语法有用。我举一个例子,它是原型方法。如何实现原型继承?你对此有什么想法吗?
-
@RobertJ.Hovey 不,那是 Javascript。它只是使用了您可能不熟悉的语言的一些功能。
-
@duskwuff 没错,我是编写 javascript 的初学者。我想写一个基于 jquery 的插件。所以我用js来写基于原型的语法。
标签: javascript html oop prototype