jQuery无法更新自定义属性

时间:2015-03-06 18:54:41

标签: jquery attributes

http://jsfiddle.net/k3Grd/373/

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

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

<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'));
});

输出:

readonly
readonly
readonly

编辑:更新了使用输入的代码。我认为这不重要。

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

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

http://jsfiddle.net/k3Grd/378/

2 个答案:

答案 0 :(得分:1)

你想如何将 readonly 这样的attr放到一个div中,这没有意义。

您可以将 readonly 添加到输入,选择和textarea ....

答案 1 :(得分:1)

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