Javascript 正在从列表中获取元素。道场
我正在使用dojoJavascript 正在从列表中获取元素。道场,javascript,web,dojo,Javascript,Web,Dojo,我正在使用dojo dojo.ready(function () var input = dojo.query(".dojo_input"); //i have about 5 elements with ".dojo_input" class input.on("click", function(i) { console.log(input[i]); // function }); }); 所以问题是:我得到了未定义的元
dojo.ready(function ()
var input = dojo.query(".dojo_input"); //i have about 5 elements with ".dojo_input" class
input.on("click", function(i) {
console.log(input[i]);
// function
});
});
所以问题是:我得到了未定义的元素,所以我不能对它使用任何函数。如何从列表中获取uniqe元素。
谢谢在的回调中传递给
的参数是一个事件对象,而不是索引。试着做
input.on("click", function(e) { //event object is conventionally named "e" or "evt"
console.log(e);
});
IIRC,输入节点本身应该在e.target
属性中可用
EDIT1:
看看这里的JSFIDLE。
您可以对查询结果使用foreach函数,如下所示
dojo.ready(function (){
var input = dojo.query(".dojo_input"); //i have about 5 elements with ".dojo_input" class
input.forEach(function(node, index, arr){ // node is the elment
console.log("Index"+index);
dojo.on(node,"click", function() {
console.log("Clicked!");
// function
})
});
});
我采用frank提出的代码,并使用dojo.connect
而不是dojo.on
dojo.ready(function (){
var input = dojo.query(".dojo_input"); //i have about 5 elements with ".dojo_input" class
input.forEach(function(node, index, arr){ // node is the elment
dojo.connect(node, "onclick", function() {
console.log("Clicked!" + node);
// function
dojo.query(node).after("");
});
});
});
要在节点上使用任何函数,我使用dojo.query(node)
。
谢谢
回调上的参数是一个事件,而不是索引。即使你删除了那个论点,这也行不通<代码>索引
在触发回调时始终为4。哎呀!经典的关闭错误。。。需要一个iLife来绑定索引。我尝试使用它,结果是(在第页准备就绪):我在这里创建了一个示例。看一看。它按预期工作。单击“运行”菜单运行示例并单击DIV元素。我不能使用此版本,因为我必须在节点上的onclick
event.next()
中使用。所以,我不能使用event。如果您感兴趣,我想做一些提示区域,当您单击输入时显示。当我尝试使用它时,console.log(e)返回我:MouseEvent{dataTransfer:null,toElement:input#fio_dojo.dijitReset.dijitInputInner,…当我尝试使用e.append(“”)时,它说我:uncaughttypeerror:undefined不是一个函数main.html:84(匿名函数)@uniqalien:正如预期的那样,e是一个事件对象,而不是Dom节点。您可以使用e.target获取Dom节点,然后使用它执行适当的Dom方法。您看过它使用dojo.on的fiddle示例吗?它是dojo的新事件处理函数。