有没有更好的方法在 Dojo 中获取 dom 索引?

Is there a better way to get dom index in Dojo?

我曾经使用 jquery .index() 并且需要一些帮助来理解如何使用 Dojo Nodelist。我的代码:

<ul id="indexof1">
<li><a id="1">domain_1.net</a></li>
<li><a id="2">domain_2.com</a></li>
<li><a id="3">domain_3.org</a></li>
<li><a id="4">domain_4.net</a></li>
</ul>

require(["dojo/query", "dojo/on", "dojo/NodeList-traverse"], function(query, on){
query("ul a").on("click", function(){ 
    console.log(query(this).parent().parent()[0]); // Returns UL
    console.log(query(this)[0]); // Returns the node has been clicked A
    alert(query('a', query(this).parent().parent()[0]).indexOf(query(this)[0]));
});
});

https://jsfiddle.net/wwghes79/4/

这应该可以帮助您满足您的要求:

 require(["dojo/query", "dojo/on", "dojo/NodeList-traverse"], function(query, on){
        query("ul a").on("click", function(e){ 
         console.log(query("#indexof1 li a").indexOf(this)); //returns index
        });
    });