This question already has answers here:
Get an element by index in jQuery
(5个答案)
5年前关闭。
我正在尝试为具有特定类的第一个元素设置.click函数-每个函数都需要单独的代码,递增我的
不起作用-没有错误或其他任何内容。它似乎没有选择它。稍后相同:
上面的将不起作用,指出
现在,如果您希望每个
(5个答案)
5年前关闭。
我正在尝试为具有特定类的第一个元素设置.click函数-每个函数都需要单独的代码,递增我的
purchase
函数,第一个使用purchase(0,0,1);
,第二个使用purchase(0,1,1);
并且等等。在使用$(".generation:first")
(将其称为类)的方式工作的同时,我希望能够对此类中的所有元素执行此操作,并从数组中引用它们,并且出于某种原因$(".generation")[0].click(function () { purchase(0,0,1); });
不起作用-没有错误或其他任何内容。它似乎没有选择它。稍后相同:
// Note: listings is an array of three different classes, 0 is .generation
// Therefore, 'listings[0][0]' should be identical to '$(".generation")[0]'
listings[0][0].find(".count").text(game.buildings[type][id].count+" bought");
上面的将不起作用,指出
undefined is not a function
,如果我使用.children(".count")
,它会改为object is not a function
。 最佳答案
您使用.eq(0)
获取jQuery对象中的第一个元素。 [0]
只是为您提供了第一个DOM对象,该对象显然不支持添加事件处理程序的jQuery .click()
方法。因此,您可以这样做:
$(".generation").eq(0).click(function () { purchase(0,0,1); });
现在,如果您希望每个
.generation
元素的功能稍有不同(如注释所示),则可以使用.each()
进行迭代,并对每个元素进行一些稍有不同的操作。$(".generation").each(function(index) {
$(this).click(function() {
purchase(0, index, 1);
});
});