4

可能重复:
.prop() 与 .attr()

请看一下这个小提琴:

http://jsfiddle.net/DGzvP/

$("#test").prop({
    checked: true,
    disabled: true
});

$("#result").text($("#container").html());

你会看到输出是:

<input disabled="disabled" id="test" type="checkbox"> 

这是在 FF 5 中。为什么它为禁用而不是为检查添加属性?我希望它能以一致的方式做到这两点。

编辑:

我现在意识到每个浏览器的结果都完全不同。

更多结果:

IE6/7:

<INPUT id=test disabled type=checkbox CHECKED> 

铬 13:

<input id="test" type="checkbox" disabled="">

IE8:

<INPUT id=test disabled type=checkbox> 
4

2 回答 2

3

“.prop()”方法是关于在 DOM 节点上设置/获取属性,而不是关于设置属性。因此,它不添加任何属性。您看到的是 Firefox 5“innerHTML”代码的行为,而不是 jQuery 的行为。

如果您想使用 HTML 或 XHTML(或任何您的 DOM 来源)的属性,请使用“.attr()”。但是,对于使用实时 DOM 的 JavaScript 中的大多数用途,您应该使用“.prop()”。

于 2011-07-21T20:59:18.450 回答
0

您应该使用attr而不是prop此处。

$("#test").attr({
    checked: true,
    disabled: true
});
于 2011-07-21T21:01:14.450 回答