2

以下 jsfillde 正在使用 jQuery 1.8.3,但不适用于任何较新的版本。我找不到解决它的方法。

http://jsfiddle.net/hyBXd/

$("[name=ids] option").each(function() {
  if( $(this).attr('value') == 2 ) { $(this).attr('selected','selected'); }
});

谁能帮我解决这个问题?!谢谢

4

2 回答 2

4

尝试使用prop()而不是attr()

从 jQuery 1.6 开始,.attr() 方法为尚未设置的属性返回 undefined。要检索和更改 DOM 属性,例如表单元素的选中、选择或禁用状态,请使用 .prop() 方法

$(function() {
    $("[name=ids] option").each(function() {
        if( $(this).prop('value') == 2 ) { $(this).prop('selected','selected'); }
    });
});
于 2013-05-01T10:02:53.760 回答
3

不管为什么这不起作用,您都可以大大简化您的脚本以使用最新的 1.x jQuery:

$(function() {
    $("[name=ids]").val(2);
});

http://jsfiddle.net/hyBXd/2/

于 2013-05-01T10:04:40.617 回答