如何将包含$(this)的函数应用于选择器范围?

时间:2013-06-21 13:52:14

标签: javascript jquery

我有一点问题。我想使用通用函数为表单上的所有输入验证表单。该函数处理不同类型输入的复杂性等。

对该函数的调用如下所示:

$(":input[type='text']").blur(function() {validateMe($(this).attr("id"), button_arr);});

这里的问题是$(this)似乎只适用于“模糊”的第一个元素,因此在第一个元素之后发生的任何模糊事件会使第一个选择器模糊,如果这有任何意义吗?

button_arr部分无关紧要。

有没有办法将$(this)应用于$(":input[type='text']")指定的集合中的每个元素?

感谢您的帮助!

2 个答案:

答案 0 :(得分:4)

我猜你的意思是:

$("input[type='text']").each(function () {
    $(this).blur(function () {
        validateMe(this.id, button_arr);
    });
});

答案 1 :(得分:-1)

我想

$("input[type='text']").blur(function() {
    validateMe(this.id, button_arr);
});

也应该这样做吗?为什么在选择器中使用冒号?我认为它会返回一组。所以你可以摆脱不必要的每个循环

编辑:

我猜您的意思是选择器“:input”,而不是“:input [type ='text']”?因为您的选择器只选择输入字段,并将属性“type”设置为“text”。也许你刚刚得到其中一个? “textarea”,“button”和“select”没有值为“text”的属性“type”