获取已淘汰的已点击元素的索引

获取无序列表的clicked元素索引的最佳方法是什么?

让我举个例子。 说我有以下HTML代码:

现在我有以下javascript代码来获取索引:

 self.itemClicked = function(data, item) { var index = $(item.target).index(); } 

但问题是如果目标元素是

,例如,我得到的结果不正确。 那么我应该如何获得点击的

  • 元素的索引? 淘汰赛有一些方法,或者我应该以某种方式使用jquery?

    我建议使用Knockout的$index context属性。 见下面的例子( JsFiddle ):

    HTML

        

    JavaScript的

     var vmodel = { listItems: ko.observableArray([ {title: "Able"}, {title: "Baker"}, {title: "Charlie"}]), itemClicked: function(index) { alert(index); } }; ko.applyBindings(vmodel);​ 

    而不是弄乱你的绑定,在事件函数中获取索引更漂亮。 您可以使用ko.contextFor(element)event.target获取绑定上下文

     self.click = function (data, event) { var context = ko.contextFor(event.target); console.log(context.$index()); };