IE7中使用Jquery动态操作name问题

  • 问题:IE7中无法使用Jquery动态操作页面元素的name属性。

在项目中有出现问题,某些客户的机器偶尔会有,后台取不到前台的数据值。

然开发和测试环境总是不能重现问题。坑爹之处就在于此,不能重现就不能调试,就不能知道改了后还会不会有这样的问题。

想想可能与客户环境唯一不同就只有可能是js缓存问题了,然后把所有的js文件引用的地方都加上一个当前时间参数,然问题依然存在。

本来规定的版本就是IE8,所以也没有想过会有版本兼容问题,在说了咱用的是jquery,jqeruy的出现不就是号称为了解决浏览器的兼容问题么。

该死了问题,还真实版本问题。因为某些页面需要用到IE8的兼容模式,然兼容模式其实就是像下兼容,那不就是兼容IE7 了么?

  • 于是本地用demo测试了下。
 <form id="form1" runat="server">
        <div id="div">
            <input id="input" name="1" value="123" />
        </div>
    </form>
    <script src="jquery-1.6.4.min.js"></script>
    <script>
        $("#input").attr("name", "myname");
        alert("name:" + $("#input").attr("name") + "***html:" + $("#div").html());
    </script>

IE8:  ok!

IE8兼容模式:

??为什么 $("#input").attr("name")取到的是修改后的值,而$("#div").html() 取到的name还是原先的值??

F12查看生成的html

擦 submitName 是什么东东?明显name没有改变。submitName 应该是jquery生成的 然后读取name的时候 也是直接读取的submitName 的值。

那为什么$("#div").html() 取的值中没有submitName 呢??  我也不知道jquery中的html方法是怎么实现的~~

项目中的实现方式类似于:

<form id="form1" runat="server">
        <div id="div">
            <input id="input" name="1" value="123" type="text" />
        </div>
        <div id="div2">
        </div>
    </form>
    <script src="jquery-1.6.4.min.js"></script>
    <script>
        //alert("name:" + $("#input").attr("name") + "***html:" + $("#div").html());

        $("#input").attr("name", "myname");
        $("#div2").html($("#div").html());
        var nameVal = $("#div2").find("input[name=‘myname‘]").val();
        alert(nameVal);

    </script>

这样  在IE8和谷歌浏览器 取值正常,在IE8兼容模式却取不到值。【不要问为什么非要这么赋值取值,这是demo‘类似于‘的实现,且是一个框架】

解决方案:

1.直接用jquery修改name 然后访问name是ok的,虽然 中间是生成了submitName 。

2.可以先$("#div2").html($("#div").html()); 然后在修改.attr("name", "myname");

3.可以直接拼接html。    $("#div").html("<input id="input" name="myname" value="123" type="text" />")

最后百度了下,原来是IE7不能用document.getElementsByName()访问js动态创建和修改后的name值。

时间: 2024-08-28 02:14:08

IE7中使用Jquery动态操作name问题的相关文章

jQuery动态操作元素

1. 动态创建元素 语法:$('<li></li>'); 返回一个新创建的jQuery对象 2. 动态追加元素 1)向父元素最后追加 语法1:新创建jQuery对象.appendTo('父元素选择器' 或 父元素jQuery对象); 1 <body> 2 <button>点击追加li</button> 3 <ul class="ul1"></ul> 4 <script src="lib/

Jquery动态操作checkbox

问题的由来:html页面中使用checkbox给新建用户授权,然后提交到后台服务器,完成给用户授权.用户授权完成之后,如果用户的权限发生改变管理员需要修改多个用户的权限或查看某用户的权限,点击不同的用户时就需要在checkbox中显示不同用户的权限信息,此时就需要动态的修改checkbox. 解决方法的探索: 首先,使用Jquery的attr对checkbox进行遍历,所有的checkbox都设置为false,未选择. $('input[name="auth"]').each(func

JQuery动态操作表格

新人,小白一枚,刚刚参加工作,所以会在这里记录一些遇到的问题. 最近要做的东西,是对一个表格动态的添加行,删除行,并且对表格中内容进行非空验证. <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&quo

Django中利用type动态操作数据库表

场景分析: 后台MySql数据库保存了一大批按股票代码命名的数据表,每张表保存的是每只股票的日线数据. stock_000002 stock_600030 stock_600020 ...一共3000多个表. Django中如果要按股票代码展示每张表的数据,利用常规ORM模型变得非常困难,因为有3000多个表,就需要建3000多个模型. 解决办法: 1. 根据表名.字段等动态创建ORM表模型 def create_model(name, fields=None, app_label='', mo

jquery中对 iframe的操作

我们先看一下 JQUERY中的对像 contents() 的帮助文件 contents() 概述 查找匹配元素内部所有的子节点(包括文本节点).如果元素是一个iframe,则查找文档内容 示例 描述: 查找所有文本节点并加粗 HTML  代码: <p>Hello <a href="http://ejohn.org/">John</a>, how are  you doing?</p>jQuery  代码: $("p")

PHP服务器文件管理器开发小结(九):jQuery动态表单实现文件下载

前文讨论的文件操作,无论是新建.编辑.移动.删除,都是服务端对本地文件系统的操作.这一节需要讨论一个涉及服务端和客户端协调进行的操作:文件下载. 简单的文件下载可以通过将相对路径写入超链接的方式进行,然而这样仅限于服务端Apache有下载权限的文档,如果需要支持对更多文件进行下载,仅仅使用这一方式就远远不够了.这里需要利用PHP的能力,在服务端"取出"文件并"推送"给客户端. 首先是生成下载图标链接: if (is_readable($filePath)) $inf

深入学习jQuery节点操作

× 目录 [1]创建节点 [2]插入节点 [3]删除节点[4]复制节点[5]替换节点[6]包裹节点 前面的话 DOM节点操作包括创建节点.插入节点.移除节点.替换节点和复制节点.jQuery也有类似的方法,此外,还扩展了包裹节点.本文将详细介绍jQuery节点操作 创建节点 创建节点的流程比较简单,包括创建节点.添加属性和添加文本.若应用原生方法,一般地,包括document.createElement().setAttribute()和innerHTML var ele = document.

js+jquery动态设置/增加/删除/获取元素属性的两种方法集锦对比(动态onclick属性设置+动态title设置)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html140/strict.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>

jQuery 常见操作实现方式

一篇 jQuery 常用方法及函数的文章留存备忘. jQuery 常见操作实现方式 $("标签名") //取html元素 document.getElementsByTagName("") $("#ID") //取单个控件document.getElementById("") $("div #ID") //取某个控件中 控件 $("#ID #ID") // 通过控件ID取其中的控件 $(