在jQuery中添加属性


Answers:


519

您可以attr像这样添加属性:

$('#someid').attr('name', 'value');

但是,对于像和这样的DOM属性checked,执行此操作的正确方法(从JQuery 1.6开始)是使用。disabledreadonlyprop

$('#someid').prop('disabled', true);

28
对我来说$('#someid').prop('disabled', true);不起作用,但是$('#someid').attr('disabled', true);效果很好。
VukašinManojlović

4
我也同意@VukašinManojlović..
sstauross 2014年

3
在决定要使用attr还是之前prop,了解属性和属性之间的区别很重要。如果不了解差异,您很可能会遇到意想不到的行为。参见stackoverflow.com/a/6004028/3367343
Travis Hohl,2015年

prop现在可以代替attr吗?还是仅在某些特殊情况下使用?
乔杜里·瓦卡斯

41

最佳解决方案:从jQuery v1.6开始,您可以使用 prop()添加属性

$('#someid').prop('disabled', true);

删除它,使用 removeProp()

$('#someid').removeProp('disabled');

Reference

另请注意,不应使用.removeProp()方法将这些属性设置为false。一旦删除本机属性,就无法再次添加。有关更多信息,请参见.removeProp()。


29

您可以使用jQuery的.attr函数来执行此操作,该函数将设置属性。通过.removeAttr功能删除它们。

//.attr()
$("element").attr("id", "newId");
$("element").attr("disabled", true);

//.removeAttr()
$("element").removeAttr("id");
$("element").removeAttr("disabled");

1
包括删除功能的奖励!
BoatCode 2014年





0

这可能会更有帮助。

$("element").prop("id", "modifiedId");
//for boolean
$("element").prop("disabled", true);
//also you can remove attribute
$('#someid').removeProp('disabled');

属性和属性并不完全相同。例如,“ id”是属性,而不是属性。您.attr()用来设置或阅读它。请参阅jQuery文档中.prop().attr()下的“属性与属性”段落。另请参阅上面的Paul Rosania的答案
jkdev


0

使用此代码 <script> $('#someid').attr('disabled,'true'); </script>


如果您能提供一些解释的话,那就更好了
mooga

仅在写入代码后包含jQuery链接。<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> $符号内的文本选择id = someid的所有元素,此id的disable属性更改为true
Vildan Bina
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.