jQuery attr()函数在n#39; t中是跨平台独立的

时间:2014-08-21 12:43:20

标签: jquery html css dhtml attr

以下jQuery语句对我有用。但我不知道这是一个跨平台独立与否?

$("input[name='confirmed']").attr("checked",false);

它致力于火狐最新版本。 如果我错了请纠正我? 感谢

4 个答案:

答案 0 :(得分:2)

作为一般规则,JQuery完全兼容跨浏览器。通常当某些东西在一个[现代]浏览器中不起作用时,它将无法在其中任何一个中起作用。

我认为处理复选框最常用的语法是:

// set checked state
$("input[name='confirmed']").prop("checked", true);

// remove checked state
$("input[name='confirmed']").prop("checked", false);

// test checked state
$("input[name='confirmed']").is(":checked"); // returns boolean

// pull out only checked inputs
$("input[name='confirmed']").filter(":checked"); // returns collection

答案 1 :(得分:1)

由于您使用的功能有误,因此对您的使用情况的浏览器支持并不重要。

the attr method的第二个参数必须是字符串,数字或函数(返回字符串或数字)。

如果要删除属性,请使用removeAttr

如果您想改变输入的已检查状态,则use prop而非attrattr为已选中状态设置默认值,而不是当前价值)。

答案 2 :(得分:1)

使用点击事件

if($("input[name='confirmed']").attr("checked")){
   $("input[name='confirmed']").removeAttr("checked");
} else {
   $("input[name='confirmed']").attr("checked","checked");
}

答案 3 :(得分:0)

我已经用这种方式将我的jQuery方法attr()改为prop():

$("input[name='confirmed']").prop("checked",false);

并且工作正常。 请参阅以下链接以供参考:

http://api.jquery.com/attr

特别感谢MelanciaUK先生提出的宝贵意见:

谢谢大家的宝贵建议。