下列:
$("select option:contains(fish)").attr('selected', true);
Run Code Online (Sandbox Code Playgroud)
在jQuery 1.9以下的任何地方都可以使用,但在jQuery 1.9+中根本不起作用.我一直在搜索有关任何变化的任何文档,但没有找到任何内容.
知道如何让这个代码与新的jquery一起工作吗?
示例这里(默认为jQuery 1.4):http://jsfiddle.net/reigel/TZmEw/
ins*_*iac 17
对于jquery 1.9,使用Prop api而不是attr.
$("select option:contains(fish)").prop('selected', 'selected');
Run Code Online (Sandbox Code Playgroud)
要么
$("select option:contains(fish)").prop('selected', true);
Run Code Online (Sandbox Code Playgroud)
原因:jQuery 1.6引入了.prop()方法来设置或获取节点上的属性,并且不推荐使用.attr()来设置属性.但是,高达1.9的版本继续支持在特定情况下使用.attr().当使用区分属性和属性的选择器时,以向后兼容性名称的此行为会导致混淆.
资料来源:http://jquery.com/upgrade-guide/1.9/#changes-of-note-in-jquery-1-9
在Attr Api中提到:从jQuery 1.6开始,.attr()方法为尚未设置的属性返回undefined.此外,.attr()不应用于普通对象,数组,窗口或文档.要检索和更改DOM属性,请使用.prop()方法.
资料来源:http://api.jquery.com/attr/#entry-longdesc