发现html()返回的值,并不包含input的value的值, value得到的是空字符串。
原因,DOM在这html渲染的时候value这个attribute仅仅是代表input的初始值。
后面,如果需要拿到新的html带最新value的需要用js手动的设置attribute value为新值。
比如用$().attr('value', '123);
测试代码如下
<script src="http://libs.baidu.com/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$("#div-1 [name=field-0]").attr('x', 123);
// $("#div-1 :input").val(7);
});
function test(){
var fieldValue0 = $("#div-1 [name=field-0]").val();
$("#div-1 [name=field-0]").attr('value', fieldValue0);
var str=$("#div-1").html();
alert(str);
}
</script>
<span id="div-1">
<input type="text" name="field-0" value="1">
</span>
<input type="button" value="test" οnclick="test()">
按下test按钮的时候,会alert的html包含input里面手动输入的新值.