选择通过jquery选择的选项不仅仅适用于chrome

时间:2011-12-26 06:51:39

标签: jquery

我无法弄清楚为什么它只在chrome上工作,而它在firefox上工作,即。

HTML CODE:

<select name="goyale" id="goyale">
<option value="0">Select</option>
<option value="1">Fish</option>
<option value="2">Chicken</option>
<option value="3">Meat</option>
</select>

jQuery CODE:

$(document).ready(function () {
    $("select#goyale option[value='<?php echo $row['goyale']; ?>']").attr("selected", "selected");
});

每当我检查chrome上的元素时,它会将选项显示为<option value="3" selected="selected">Meat</option>,但该选项在肉眼显示时不会显示。

感谢。

5 个答案:

答案 0 :(得分:4)

尝试使用Prop方法。我在Safari,Opera,Firefox和Chrome上测试过,它运行良好。

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Test - Option selected - jQuery</title>
</head>
<body>
    <form>
      <select>
        <option value="11">aa</option>
        <option value="22">bb</option>
        <option value="33">cc</option>
        <option value="44">dd</option>
      </select>
    </form>
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script>
        $(function(){
            $('select option:last').prop('selected','selected');
        });
    </script>
</body>
</html>

您可以在此处找到更多信息:

http://jquery.com/upgrade-guide/1.9/#attr-versus-prop-

答案 1 :(得分:1)

您正在寻找select id goyale的所有goyale元素。在您的HTML中,name是您元素的$(function(){ $("select[name='goyale']").etc(); }); 属性。

请改用:

prop()

另外,使用option将所选属性添加到$("option[value='<?php echo $row['goyale']; ?>']").prop("selected",true); 元素:

prop()

有关{{1}} here的更多信息。

答案 2 :(得分:1)

问题在于jQuery 1.6,一旦我更新到jQuery 1.7,问题就消失了,select函数按预期工作。谢谢,我应该在发布之前更新到最新版本。

答案 3 :(得分:1)

我希望这能解决你的问题

$("#goyale").val("<?php echo $row['goyale']; ?>");

答案 4 :(得分:0)

确定这样做,在标签中给出id =“goyale”,因为可能是chrome不支持选择器#id选择器为“name”attrib,否则尝试选项[name = goyale] jquery的选择器