首页 新闻 会员 周边

问一个关于 jquery .html() 的兼容性问题

0
[待解决问题]

谷歌浏览器下  .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即为输入的值

盛开的阳光的主页 盛开的阳光 | 菜鸟二级 | 园豆:204
提问于:2013-12-18 16:02
< >
分享
所有回答(6)
0

如果只是想取值,有其它办法呀?

angelshelter | 园豆:9887 (大侠五级) | 2013-12-18 17:17

比如?  求教

支持(0) 反对(0) 盛开的阳光 | 园豆:204 (菜鸟二级) | 2013-12-18 18:29
0

你要弹窗  txtName 的value, 不是该 这样取吗?

alert($("#txtName").val());

小诺2010 | 园豆:204 (菜鸟二级) | 2013-12-18 17:22

不  我要取的是html  ..

支持(0) 反对(0) 盛开的阳光 | 园豆:204 (菜鸟二级) | 2013-12-18 18:29

@盛开的阳光: 你到底要取什么,你取html干啥子罗?

支持(0) 反对(0) angelshelter | 园豆:9887 (大侠五级) | 2013-12-18 21:29

@angelshelter:要取某一个元素下的html   存数据库去

支持(0) 反对(0) 盛开的阳光 | 园豆:204 (菜鸟二级) | 2013-12-18 22:53

@盛开的阳光:试试DOM属性

var txt=document.getElementById("intro").innerHTML; 

支持(0) 反对(0) angelshelter | 园豆:9887 (大侠五级) | 2013-12-19 11:44

@angelshelter: 这个本质和  $("#id").html()是一样的   2个浏览器出来的不一样  我写的方法在楼下 

支持(0) 反对(0) 盛开的阳光 | 园豆:204 (菜鸟二级) | 2013-12-19 11:46
0

我试过了,都可以弹出 

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

水晶糖 | 园豆:193 (初学一级) | 2013-12-19 10:07

你仔细看看吧   谷歌浏览器下  弹出的  应该是<input type="text" name="txtName" id="txtName"/>

IE浏览器下  弹出的是  <input type="text" name="txtName" id="txtName" value="你输入的值"/>

支持(0) 反对(0) 盛开的阳光 | 园豆:204 (菜鸟二级) | 2013-12-19 10:11

@盛开的阳光: 

支持(0) 反对(0) 水晶糖 | 园豆:193 (初学一级) | 2013-12-19 10:13

@水晶糖: 有没发现value木有一起跟着=,=

支持(0) 反对(0) 盛开的阳光 | 园豆:204 (菜鸟二级) | 2013-12-19 10:16

@盛开的阳光: 你想无中生有?你本来也没写value啊

支持(0) 反对(0) 水晶糖 | 园豆:193 (初学一级) | 2013-12-19 10:19

@水晶糖: 汗   你文本框输入的值就是value了吖..

支持(0) 反对(0) 盛开的阳光 | 园豆:204 (菜鸟二级) | 2013-12-19 10:21

@盛开的阳光: 你是想弹出包含value这个属性的 ,你只是弹出的那段代码啊 

支持(0) 反对(0) 水晶糖 | 园豆:193 (初学一级) | 2013-12-19 10:24

@水晶糖: 无力感..

支持(0) 反对(0) 盛开的阳光 | 园豆:204 (菜鸟二级) | 2013-12-19 10:40

@盛开的阳光: 

var t= $("#txtName").val();
$("#txtName").attr("value",t);这样就有value,

支持(1) 反对(0) 水晶糖 | 园豆:193 (初学一级) | 2013-12-19 10:43

@水晶糖: 亲  我要的是一整个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")无效  不知道为啥  先这么用了吧  忙

支持(0) 反对(1) 盛开的阳光 | 园豆:204 (菜鸟二级) | 2013-12-19 11:07

@盛开的阳光: 我知道

setAttribute是dom方法。

attr是jquery对象方法。

如果你想用attr,   以你目前的环境$(this).attr("value","XX");

支持(0) 反对(0) angelshelter | 园豆:9887 (大侠五级) | 2013-12-19 12:01

@angelshelter: $(this).attr("value","XX")不行的  得和JS混着用

支持(0) 反对(0) 盛开的阳光 | 园豆:204 (菜鸟二级) | 2013-12-19 12:08
0

只能判断当前是什么浏览器了 然后根据不同的浏览器 再去取了

wolfy | 园豆:2636 (老鸟四级) | 2014-01-16 19:06
0

(function ($) {
$.fn.FormHtml = function () {
this.find("input").each(function () {
this.setAttribute("value", $(this).val());
});
return $(this).html();
}
})(jQuery)

 

盛开的阳光 | 园豆:204 (菜鸟二级) | 2014-01-20 11:48
0

刚才试了只有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>
View Code

 

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

小乔布斯 | 园豆:446 (菜鸟二级) | 2014-02-06 19:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册