jquery .html()没有获得最新的选定值

时间:2014-04-11 16:21:24

标签: javascript jquery

jquery .html()没有获得最新选择的值,这里是代码

<div id="testDiv">
<select id="mySel">
    <option  value="1">opt 1</option>
    <option selected value="2">opt 2</option>
    <option value="3">opt 3</option>
    <option value="4">opt 4</option>
</select>
</div>

和脚本

$(document).ready(function(){
$('#mySel').val('3');
var divContent = $('#testDiv').html();
alert(divContent);
});

获得这样的输出

 <select id="mySel">
        <option  value="1">opt 1</option>
        <option selected value="2">opt 2</option>
        <option value="3">opt 3</option>
        <option value="4">opt 4</option>
    </select>

'选中'没有改变,我需要像这样输出

 <select id="mySel">
        <option  value="1">opt 1</option>
        <option  value="2">opt 2</option>
        <option selected value="3">opt 3</option>
        <option value="4">opt 4</option>
    </select>

2 个答案:

答案 0 :(得分:4)

$(document).ready(function(){
$('#mySel').val('4');
$("#mySel").find('option').removeAttr("selected");
$("#mySel option[value='4']").attr("selected","selected");
var divContent = $('#testDiv').html();
alert(divContent);
});

输出:

<select id="mySel">
    <option value="1">opt 1</option>
    <option value="2">opt 2</option>
    <option value="3">opt 3</option>
    <option selected="selected" value="4">opt 4</option>
</select>

答案 1 :(得分:1)

对于您想要的输出,您需要添加一个脚本,以便在用户更改值时将selected属性移动到正确的<option>。默认情况下,选择列表不会根据用户的操作修改您的标记。