Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery.html()未获取最新选定值_Javascript_Jquery - Fatal编程技术网

Javascript jquery.html()未获取最新选定值

Javascript jquery.html()未获取最新选定值,javascript,jquery,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> <opt

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>
得到这样的输出

 <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>

选择1
选择2
选择3
选择4
“selected”未更改,我需要这样的输出

 <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>

选择1
选择2
选择3
选择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
选择2
选择3
选择4

您看到这种行为是因为。如果希望标记属性随基础元素属性一起更改,则需要手动更改
s上的
选定的
属性。存在类似问题的输入文本,$('#txtId').val('new value');它不起作用。最后是$('#txtId').attr('value','newvalue');很好。select没有其他选项?这是因为
.val()
更改了输入元素的基础属性,该属性不会反映在标记属性中,而是用于表单POST之类的内容。设置后使用
.val()
将获得更新的值,即使标记没有显示该值。如果您关心实际的标记属性,而不是基础属性,则只需更改该属性。select的任何其他选项(如.attr())?您可以使用
.attr()
,它只需位于
上,而不是
,根据下面的答案。输入有类似问题的文本$('#txtId').val('new value');它不工作。最后,$('#txtId').attr('value','new value');工作正常