Javascript 合并多个.removeAttr()语句

Javascript 合并多个.removeAttr()语句,javascript,jquery,Javascript,Jquery,我有多个removeAttr有什么方法可以合并它们吗 我所拥有的:这很有效 checkboxes.removeAttr("checked",'checked'); checkboxes.removeAttr("indeterminate", false); checkboxes.removeAttr("role", 'checkbox'); checkboxes.removeAttr("aria-checked", false); 我尝试过的:这不起作用 checkboxes.removeAt

我有多个removeAttr有什么方法可以合并它们吗

我所拥有的:这很有效

checkboxes.removeAttr("checked",'checked');
checkboxes.removeAttr("indeterminate", false);
checkboxes.removeAttr("role", 'checkbox');
checkboxes.removeAttr("aria-checked", false);
我尝试过的:这不起作用

checkboxes.removeAttr({
    checked: 'checked',
    indeterminate: false,
    role: 'checkbox',
    'aria-checked': false
});
当我尝试此操作时,会出现以下控制台错误。所以要么是我的语法错误,要么就是这根本不起作用

Uncaught TypeError: Object #<Object> has no method 'toLowerCase'  jquery.min.js:2
感谢您的帮助。谢谢。

根据文档,它不接受对象。所以

复选框。removeAttr{};这是行不通的。它还接受一个参数[thx@RocketHazmat],用于您想要删除的校正

您可以执行如下链接操作:

checkboxes
   .removeAttr("checked")
   .removeAttr("indeterminate")
   .removeAttr("role")
   .removeAttr("aria-checked");
但若要设置属性,则必须使用attr方法,如:

checkboxes
  .attr("checked", 'checked')
  .attr("indeterminate",false )
  .attr("role",'checkbox')
  .attr("aria-checked", false);
根据doc,它不接受对象。所以

复选框。removeAttr{};这是行不通的。它还接受一个参数[thx@RocketHazmat],用于您想要删除的校正

您可以执行如下链接操作:

checkboxes
   .removeAttr("checked")
   .removeAttr("indeterminate")
   .removeAttr("role")
   .removeAttr("aria-checked");
但若要设置属性,则必须使用attr方法,如:

checkboxes
  .attr("checked", 'checked')
  .attr("indeterminate",false )
  .attr("role",'checkbox')
  .attr("aria-checked", false);
只需将$。与数组一起使用即可,快速、简短且可扩展

$.each(["checked","indeterminate"],function(i,attrName){
    checkbox.removeAttr(attrName);
});
只需将$。与数组一起使用即可,快速、简短且可扩展

$.each(["checked","indeterminate"],function(i,attrName){
    checkbox.removeAttr(attrName);
});

我不知道为什么要同时将键和值传递给removeAttr,但如果您只想从元素中删除这4个属性,请传递一个以空格分隔的键列表,如下所示:

checkboxes.removeAttr("checked indeterminate role aria-checked");

我不知道为什么要同时将键和值传递给removeAttr,但如果您只想从元素中删除这4个属性,请传递一个以空格分隔的键列表,如下所示:

checkboxes.removeAttr("checked indeterminate role aria-checked");

@RocketHazmat是对的,所以它是这样的:

checkboxes.removeAttr("checked indeterminate role aria-checked");

但是您需要jQuery的1.7或更高版本。

@RocketHazmat是正确的,所以它是这样的:

checkboxes.removeAttr("checked indeterminate role aria-checked");


但是您需要jQuery的1.7或更高版本。

只接受一个参数。要删除的属性;从1.7版开始,它可以是一个以空格分隔的属性列表。你不是真的在寻找.prop吗?只接受一个参数。要删除的属性;从1.7版开始,它可以是一个以空格分隔的属性列表。您不是真的在寻找.prop吗?removeAttr只接受一个参数,而不是两个。@PuzzledBoy是一个严重的错误。。。很抱歉:谢谢你更好地向我解释这一点。然而,我喜欢凯文B的方法,并将接受这作为我的答案。@japanFour thx很多。。。我很高兴。。。因为我认为Kevin是所有线程中最好的一个。@Jeremy T,没错,这就是为什么我认为我可以用removeAttr做同样的事情。removeAttr只接受一个参数,而不是两个。@PuzzledBoy是一个严重的错误。。。很抱歉:谢谢你更好地向我解释这一点。然而,我喜欢凯文B的方法,并将接受这作为我的答案。@japanFour thx很多。。。我很高兴。。。因为凯文是所有线程中最好的,我想。@Jeremy T,没错,这就是为什么我认为我可以用removeAttr做同样的事情。这是最好的方法。。这将有助于无需每次重复代码。removeAttr..这是最好的方法。。这将有助于无需每次重复代码。removeAttr..对,如果使用较旧版本的jQuery,则需要使用CodeParadoxRight描述的方法,如果使用较旧版本的jQuery,则需要使用thecodeparadox@RocketHazmat对不起,打错了。别担心。很好:-@RocketHazmat很抱歉打错了。别担心。很好:-