将js命令合并在一起

时间:2014-02-04 18:38:52

标签: javascript jquery

我不是JavaScript方面的专家,所以我不知道如何把它放在一起,但基本上是:

我希望addClassattr disabled改为$submit& $inputs。我这样做了:

$submit.addClass("sent");
$submit.attr('disabled', 'disabled');

$inputs.addClass("sent");
$inputs.attr('disabled', 'disabled');

问题是,我试图通过将它们全部放在一个命令“不知道它叫什么”来简化上面的脚本,所以我尝试了:

$submit, $input.addClass("sent");

但仅适用于$input$submit的内容已被忽略,我不是JavaScript的专家,我不知道要搜索什么来寻找解决方案。

问题是,我可以将$submit$input合并在一起吗?

5 个答案:

答案 0 :(得分:1)

使用jQuery的.add()

$submit.add($inputs).addClass('sent').attr('disabled', 'disabled');

这将允许您将元素集合组合在一起,然后在新的组合集合上运行您想要的任何其他jQuery代码。

答案 1 :(得分:0)

您可以使用.add()来实现您的目标。

试试吧,

$submit.add($input).addClass("sent").prop('disabled', true);

另外使用

.prop('disabled', true)

而不是使用

.attr('disabled','disabled')

答案 2 :(得分:0)

您可以使用.add()进行选择,包括所有目标元素,然后使用链接在所选元素上调用多个方法,只留下这一个... ...

$submit.add($inputs).addClass("sent").attr('disabled', 'disabled');

答案 3 :(得分:0)

基本上你这样做 -

$('input, submit').addClass('sent').attr('disabled', 'disabled');

但是,对于禁用属性,您应该在较新版本的jQuery中使用prop()。

答案 4 :(得分:0)

作为替代方案,您可以使用元素数组并传递给这样的函数:

function disableEvent(arr) {
    for (var i =0; i < arr.length; i++){
        arr[i].addClass('sent');
        arr[i].attr('disabled','disabled');
    }

}
//calling function
disableEvent([$submit,$inputs]);