在多个(html)元素上循环使用相同的JavaScript函数属性更改

在多个(html)元素上循环使用相同的JavaScript函数属性更改,javascript,html,jquery,Javascript,Html,Jquery,有没有一种方法可以循环多个字段的JavaScript函数 例如,我有5个文本框,例如: text1 text2 text3 text4 text5 现在,它们在“focusout”中都做了相同的事情,因此我不想为它们分别编写五个不同的JS函数: $('#text1').focusout( { ............. }); $('#text2').focusout( { ............. }); $('#text3').focusout( { ........

有没有一种方法可以循环多个字段的JavaScript函数

例如,我有5个文本框,例如:

text1
text2
text3
text4
text5
现在,它们在“focusout”中都做了相同的事情,因此我不想为它们分别编写五个不同的JS函数:

$('#text1').focusout( {
.............
    });

$('#text2').focusout( {
.............
    });

$('#text3').focusout( {
.............
    });

$('#text4').focusout( {
.............
    });

$('#text5').focusout( {
.............
    });
如何避免在这里编写五个不同的函数

提前感谢

使用公共类:

<input type="text" class="focusClass" />
<input type="text" class="focusClass" />
另一种选择是将它们连接在一起,但这种方式更难维护:

$('#text1, #text2, #text3, #text4, #text5 ').focusout(function() {
    // ...
});
使用公共类:

<input type="text" class="focusClass" />
<input type="text" class="focusClass" />
另一种选择是将它们连接在一起,但这种方式更难维护:

$('#text1, #text2, #text3, #text4, #text5 ').focusout(function() {
    // ...
});

在选择器中,选择要使用的所有图元:

$('#text1, #text2, #text3, #text4, #text5')

在选择器中,选择要使用的所有图元:

$('#text1, #text2, #text3, #text4, #text5')

如果将同一类放在所有元素上没有意义,可以使用逗号组合选择器:

$('#text1, #text2, etc...., #text5').focusout( {
.............
});
或者,您可以声明函数,然后通过focusout调用将其作为参数传递给每个选择器:

var onFocusOut = function() {
 do something
};

$('#text1').focusout(onFocusOut);
$('#text2').focusout(onFocusOut);
$('#text3').focusout(onFocusOut);
$('#text4').focusout(onFocusOut);
$('#text5').focusout(onFocusOut);

如果将同一类放在所有元素上没有意义,可以使用逗号组合选择器:

$('#text1, #text2, etc...., #text5').focusout( {
.............
});
或者,您可以声明函数,然后通过focusout调用将其作为参数传递给每个选择器:

var onFocusOut = function() {
 do something
};

$('#text1').focusout(onFocusOut);
$('#text2').focusout(onFocusOut);
$('#text3').focusout(onFocusOut);
$('#text4').focusout(onFocusOut);
$('#text5').focusout(onFocusOut);

这是一个简单的方法

$("#text" + [1,2,3,4,5].join(", #text")).focusout(function () {...});
但是我想知道你是否可以在元素中添加一个类,这样你就可以立刻选择它们

例如

<input type='text' id="text1' class='textfield' />
<input type='text' id="text2' class='textfield' />
<input type='text' id="text3' class='textfield' />
另一个选项是,您有一个id为的父容器,它为您提供以下选项

<div id="formfields">
    <input type='text' id="text1' class='textfield' />
    <input type='text' id="text2' class='textfield' />
    <input type='text' id="text3' class='textfield' />
</div>

更新又添加了两个选项来选择字段

这是一个简单的方法

$("#text" + [1,2,3,4,5].join(", #text")).focusout(function () {...});
但是我想知道你是否可以在元素中添加一个类,这样你就可以立刻选择它们

例如

<input type='text' id="text1' class='textfield' />
<input type='text' id="text2' class='textfield' />
<input type='text' id="text3' class='textfield' />
另一个选项是,您有一个id为的父容器,它为您提供以下选项

<div id="formfields">
    <input type='text' id="text1' class='textfield' />
    <input type='text' id="text2' class='textfield' />
    <input type='text' id="text3' class='textfield' />
</div>

更新又添加了两个选项来选择字段

您可以将文本框的ID传递给jQuery函数以执行任务

试试这个:

function myFunction(IDofObject)
{
    $( "#"  + IDofObject  ).doSomething();
}

您可以将文本框的ID传递给jQuery函数以执行任务

试试这个:

function myFunction(IDofObject)
{
    $( "#"  + IDofObject  ).doSomething();
}

是否有方法将当前id传递给特定类名的jQuery函数?是否有方法将当前id传递给特定类名的jQuery函数?是否可以使用元素类名将文本框的id传递给jQuery?如何在此处将id传递给函数?是否可以使用元素类名将文本框的id传递给jQuery?如何在此处将ID传递给我的函数?每个文本框都附加了另一个文本框。例如text1=student1和Name1=StudentName1,text2=studentdinname2=StudentName2。。。等等输入student1填充StudentName1,依此类推。。。因此,如果我按照您的方式操作,它将使用相同的名称填充所有名称文本框(Name1、Name2、Name3、Name4、Name5)。我希望他们独立。有没有办法在一组具有相同类名的文本框中识别特定的文本框?@user793468为您添加了另外两个选项!;-)每个文本框都附加了另一个文本框。例如text1=student1和Name1=StudentName1,text2=studentdinname2=StudentName2。。。等等输入student1填充StudentName1,依此类推。。。因此,如果我按照您的方式操作,它将使用相同的名称填充所有名称文本框(Name1、Name2、Name3、Name4、Name5)。我希望他们独立。有没有办法在一组具有相同类名的文本框中识别特定的文本框?@user793468为您添加了另外两个选项!;-)每个文本框都附加了另一个文本框。例如text1=student1和Name1=StudentName1,text2=studentdinname2=StudentName2。。。等等输入student1填充StudentName1,依此类推。。。因此,如果我按照您的方式操作,它将使用相同的名称填充所有名称文本框(Name1、Name2、Name3、Name4、Name5)。我希望他们独立。在一组具有相同类名的文本框中,有没有一种方法可以识别一个特定的文本框?每个文本框都附加了另一个文本框。例如text1=student1和Name1=StudentName1,text2=studentdinname2=StudentName2。。。等等输入student1填充StudentName1,依此类推。。。因此,如果我按照您的方式操作,它将使用相同的名称填充所有名称文本框(Name1、Name2、Name3、Name4、Name5)。我希望他们独立。在一组具有相同类名的文本框中,有没有一种方法可以识别一个特定的文本框?每个文本框都附加了另一个文本框。例如text1=student1和Name1=StudentName1,text2=studentdinname2=StudentName2。。。等等输入student1填充StudentName1,依此类推。。。因此,如果我按照您的方式操作,它将使用相同的名称填充所有名称文本框(Name1、Name2、Name3、Name4、Name5)。我希望他们独立。有没有办法在一组具有相同类名的文本框中识别一个特定的文本框?好吧,现在我很困惑。我以为你想让它对每个文本框做同样的事情?如果您需要它根据输入框具有不同的功能,请坚持使用原始代码。另外,您可以使用
.attr('id')
获取元素的id。我尝试了.attr('id'),但它只返回类中的第一个id,我在一个类中有许多文本框,有没有其他方法来标识文本框?就像text1可以识别name1一样,text2也可以识别name2,所以每个文本框都有另一个附加的文本框。例如text1=student1和Name1=StudentName1,text2=studentdinname2=StudentName2。。。等等输入student1填充StudentName1,依此类推。。。因此,如果我按照您的方式操作,它将使用相同的名称填充所有名称文本框(Name1、Name2、Name3、Name4、Name5)。我希望他们独立。有没有办法在一组具有相同类名的文本框中识别一个特定的文本框?好吧,现在我很困惑。我以为你想要它