gpt4 book ai didi

javascript - 在 JavaScript 中返回引用

转载 作者:行者123 更新时间:2023-11-28 21:07:29 25 4
gpt4 key购买 nike

这是代码:

http://jsfiddle.net/GKBfL/

我试图让collection.prototype.add返回一个引用,以便最终警报将显示testing,testing,123,testing。有没有办法完成我在这里想做的事情?

HTML:

<span id="spantest">testing, testing, 123, testing</span>​

JavaScript:

var collection = function () {
this.items = {};
}

collection.prototype.add = function(sElmtId) {
this.items[sElmtId] = {};
return this.items[sElmtId];
}

collection.prototype.bind = function() {
for (var sElmtId in this.items) {
this.items[sElmtId] = document.getElementById(sElmtId);
}
}
var col = new collection();
var obj = {};
obj = col.add('spantest');
col.bind();
alert(obj.innerHTML);​

最佳答案

你的问题是这一行:

this.items[sElmtId] = document.getElementById(sElmtId);

这会使用 DOM 节点覆盖当前分配给 this.items[sElmtId] 的对象。相反,您应该将节点分配给该对象的属性:

this.items[sElmtId].node = document.getElementById(sElmtId);

这样,obj.node 将始终引用当前节点:

alert(obj.node.innerHTML);

DEMO

<小时/>

旁注:你的 fiddle 的问题还在于你在 DOM 尚未构建时执行代码(没有换行(head)),因此它找不到#spantest。一旦 DOM 准备就绪,您就必须运行代码,可以是 no wrap (body)onDomReadonLoad

关于javascript - 在 JavaScript 中返回引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9525801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com