jQuery类选择器和单击事件,我错过了什么?

时间:2011-11-23 20:56:26

标签: jquery arrays jquery-selectors

我对jQuery及其选择器都很陌生。

我有很多用于切换语言的链接。语言存储在{​​{1}}变量中,当前语言索引(称为languages)存储在lang中。当我点击一个链接时,它会正确更改(在数组中循环),但任何其他链接保持不变。为什么? document选择器应该选择我的所有链接......

$('.lang')

1 个答案:

答案 0 :(得分:2)

这是因为在您的点击功能中您指的是this,即只有您需要点击的当前链接

$('.lang').click(function() {
    // Set link text to the current language and increment counter
    $('.lang').text(languages[(($(document).data('lang') + 1) % languages.length)]);
    $(document).data('lang', $(document).data('lang') + 1)
});

如本jsfiddle所示

http://jsfiddle.net/WhtqR/

你是正确的$('.lang')将选择与该班级的所有链接。在您的代码中,它将click函数应用于每个链接处理程序。但是在click上执行的函数需要该标记而不是this