简化我的代码

时间:2014-05-03 18:39:13

标签: jquery

有没有办法简化以下jQuery代码?非常感谢。

$("#letter1").click(function () {
    clickLetter(1, $(this));
});
$("#letter2").click(function () {
    clickLetter(2, $(this));
});
$("#letter3").click(function () {
    clickLetter(3, $(this));
});
$("#letter4").click(function () {
    clickLetter(4, $(this));
});

抱歉,我忘了提到有26封信,所以最后一项是

$("#letter26").click(function () {
    clickLetter(26, $(this));
});

我试图避免硬编码。谢谢。

2 个答案:

答案 0 :(得分:3)

您不必循环,甚至不必硬编码元素的数量,您可以这样做:

$("[id^=letter]").click(function () {
    clickLetter(+this.id.slice('letter'.length), $(this));
});

三部分:

  • 使用starts with selector
  • 选择ID以“letter”开头的元素
  • 在“letter”(数字部分)
  • 之后获取id的一部分
  • 将此数字部分(字符串)转换为实数

答案 1 :(得分:1)

[1,2,3,4].forEach(function(i){
    $("#letter"+i).click(function () {
        clickLetter(i, $(this));
   });
});