谷歌浏览器下 .html()获取的始终是页面加载时候的html 不会实时改变
而IE浏览器下 .html()会实时改变
这要怎么破 我需要获取会实时改变的html
实验代码如下:
<div id="divMain">
<input type="text" name="txtName" id="txtName"/>
</div>
<input type="button" name="btnSubmit" id="btnSubmit" value="点击"/>
<script type="text/javascript">
$(document).ready(function () {
$("#btnSubmit").click(function () {
alert($("#divMain").html());
})
})
</script>
在谷歌浏览器与IE浏览器下会弹出不同的结果
谷歌浏览器下 txtName的value始终为null
而IE浏览器下 txtName的value即为输入的值
如果只是想取值,有其它办法呀?
比如? 求教
你要弹窗 txtName 的value, 不是该 这样取吗?
alert($("#txtName").val());
不 我要取的是html ..
@盛开的阳光: 你到底要取什么,你取html干啥子罗?
@angelshelter:要取某一个元素下的html 存数据库去
@盛开的阳光:试试DOM属性
var txt=document.getElementById("intro").innerHTML;
@angelshelter: 这个本质和 $("#id").html()是一样的 2个浏览器出来的不一样 我写的方法在楼下
我试过了,都可以弹出
<html>
<head>
<script type="text/javascript" src="jquery1.7.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#btnSubmit").click(function () {
alert($("#divMain").html());
})
})
</script>
</head>
<body>
<div id="divMain">
<input type="text" name="txtName" id="txtName"/>
</div>
<input type="button" name="btnSubmit" id="btnSubmit" value="点击"/>
</body>
</html>
你仔细看看吧 谷歌浏览器下 弹出的 应该是<input type="text" name="txtName" id="txtName"/>
IE浏览器下 弹出的是 <input type="text" name="txtName" id="txtName" value="你输入的值"/>
@盛开的阳光:
@水晶糖: 有没发现value木有一起跟着=,=
@盛开的阳光: 你想无中生有?你本来也没写value啊
@水晶糖: 汗 你文本框输入的值就是value了吖..
@盛开的阳光: 你是想弹出包含value这个属性的 ,你只是弹出的那段代码啊
@水晶糖: 无力感..
@盛开的阳光:
var t= $("#txtName").val();
$("#txtName").attr("value",t);这样就有value,
@水晶糖: 亲 我要的是一整个html 写了个扩展方法 谷歌和IE8通过 其他的还没试过 有空试了
(function ($) {
$.fn.FormHtml = function () {
this.find("input").each(function () {
this.setAttribute("value", $(this).val());
});
return $(this).html();
}
})(jQuery)
强制给value属性赋值 一定得用 document.getElementById("#id").setAttribute("value","XX") 用$("#id").attr("value","XX")无效 不知道为啥 先这么用了吧 忙
@盛开的阳光: 我知道
setAttribute是dom方法。
attr是jquery对象方法。
如果你想用attr, 以你目前的环境$(this).attr("value","XX");
@angelshelter: $(this).attr("value","XX")不行的 得和JS混着用
只能判断当前是什么浏览器了 然后根据不同的浏览器 再去取了
(function ($) {
$.fn.FormHtml = function () {
this.find("input").each(function () {
this.setAttribute("value", $(this).val());
});
return $(this).html();
}
})(jQuery)
刚才试了只有IE9以下版本才会有value属性及value值,我的解决方法:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>获取元素的属性</title> 5 <meta charset="utf-8"> 6 <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.min.js"></script> 7 <script type="text/javascript"> 8 $(document).ready(function () { 9 $("#btnSubmit").click(function () { 10 $("#divMain input").attr("value",$("#divMain input").val()); 11 alert($("#divMain").html()); 12 }) 13 }) 14 </script> 15 </head> 16 <body> 17 <div id="divMain"> 18 <input type="text" name="txtName" id="txtName"/> 19 </div> 20 <input type="button" name="btnSubmit" id="btnSubmit" value="点击"/> 21 </body> 22 </html>
<!DOCTYPE html><html><head><title>获取元素的属性</title><meta charset="utf-8"><script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.min.js"></script><script type="text/javascript">$(document).ready(function () { $("#btnSubmit").click(function () {$("#divMain input").attr("value",$("#divMain input").val()); alert($("#divMain").html()); })})</script></head><body><div id="divMain"> <input type="text" name="txtName" id="txtName"/></div><input type="button" name="btnSubmit" id="btnSubmit" value="点击"/></body></html>