jQuery无法更新自定义属性

jQuery无法更新自定义属性,jquery,attributes,Jquery,Attributes,正如你从这把小提琴上看到的,我可以设置属性,但是在那之后我不能改变它。有没有办法解决这个问题,以便我可以更新它 下面是代码,来自小提琴: <input type="text" id="tester" value="some data"> <div id="one"></div> <div id="two"></div> <div id="three"></div> $(function(){ $('#t

正如你从这把小提琴上看到的,我可以设置属性,但是在那之后我不能改变它。有没有办法解决这个问题,以便我可以更新它

下面是代码,来自小提琴:

<input type="text" id="tester" value="some data">
<div id="one"></div>
<div id="two"></div>
<div id="three"></div>

$(function(){
    $('#tester').attr('readonly', 'readonly');
    $("#one").html($('#tester').attr('readonly'));
    $('#tester').attr('readonly', 'true');
    $("#two").html($('#tester').attr('readonly'));
    $('#tester').attr('readonly', 'BROKEN');
    $("#three").html($('#tester').attr('readonly'));
});
编辑:更新代码以使用输入。我认为这无关紧要

编辑:感谢phillip100指出我应该使用prop()而不是attr()。此外,readonly会使用布尔值false设置为false,但使用字符串时始终为true

$('#tester').prop('readonly', false); //correct
$('#tester').prop('readonly', 'false'); //incorrect

如何将类似于readonly的属性放置到一个div中,这是没有意义的


您可以将只读添加到输入、选择和文本区域

.attr()
更改为
.data()
,它就会工作。正如@DarkteK指出的,
readonly
仅用于输入字段。

readonly
是一个与输入元素相关的属性,作为属性应该使用
处理。prop()
prop似乎也不起作用:是的,它起作用:。你可能想读一下好吧,我想我的浏览器缓存把我搞砸了。它正在工作。您还可以使用检查属性
$('#tester').prop('readonly', false); //correct
$('#tester').prop('readonly', 'false'); //incorrect