JQuery的html(data)方法与<script>脚本块的解决方法

“今天才注意到jQuery(...).html()方法返回的HTML会过滤掉所有的<script>块,但有时候,特别是在AJAX应用中,常常是需要保留HTML中的<script>块的,比如局部更新含脚本的内容,此时切忌不要用html()来读写HTML,还是要老老实实用elem.innerHTML。今天因为这个问题浪费了1个小时,特此给大家提个醒。”

  经过测试发现,新版本(1.3.2之后的,之前版本未考证过)的jQuery(...).html()方法已经不存在该问题(html()方法是一个读Dom元素数据的操作),但是当用html(data)方法写数据到Dom元素并且data参数中包含script脚本时,又出现了异常现象:在Firefox(我用的3.6)浏览器下执行上述操作,data参数里面的script脚本会自动运行,引起页面破相、异常等错误,比如我遇到的问题就是:在script中存在document.write方法时,在执行完html(data)操作后整个页面的原有的dom元素都消失了,只剩下document.write()方法的执行结果,引起了页面破相;具体原因待讨论,最后还是用elem.innerHTML=data这种方式解决了这个问题,特此标记。

(0)

相关推荐

  • jQuery中使用data()方法读取HTML5自定义属性data-*实例

    主要的方法如下: 复制代码 代码如下: .data( key, value ).data( obj ).data( key ).data() 从jQuery 1.4.3起, HTML 5 data- 属性 将自动被引用到jQuery的数据对象中.例如HTML: 复制代码 代码如下: <div data-role = "page" data-last-value = "43" data-hidden = "true" data-options

  • jquery用data方法获取某个元素上的事件

    jquery的给元素绑定的事件可以用data方法取出来 通过$(element).data("events")来获取 // 比如给一个button绑定两个click事件 $("button").click(function() { alert("1") }); $("button").click(function() { alert("2") }); // 这个时候点击该button会分别弹出 2 和1的a

  • jQuery中index()方法用法实例

    本文实例讲述了jQuery中index()方法用法.分享给大家供大家参考.具体分析如下: 此方法可以搜索匹配元素,并返回元素的索引值. 索引值是从0开始的. 语法结构一: 当此方法没有参数的时候,返回值是指定元素在其同辈元素集合中的索引位置. 复制代码 代码如下: $(selector).index() 实例代码: 实例一: 复制代码 代码如下: <!DOCTYPE HTML> <html> <head> <meta charset="utf-8&quo

  • jquery click([data],fn)使用方法实例介绍

    click([[data],fn]) 返回值:jQuery 概述 触发每一个匹配元素的click事件. 这个函数会调用执行绑定到click事件的所有函数. 参数 fnFunctionV1.0 在每一个匹配元素的click事件中绑定的处理函数. [data],fnString,FunctionV1.4.3 data:click([Data], fn) 可传入data供函数fn处理. fn:在每一个匹配元素的click事件中绑定的处理函数. 示例 描述: 触发页面内所有段落的点击事件 jQuery

  • jQuery中data()方法用法实例

    本文实例讲述了jQuery中data()方法用法.分享给大家供大家参考.具体分析如下: 此方法可以向匹配元素附加数据,或者从匹配元素获取数据. 语法结构一: 复制代码 代码如下: $(selector).data(name,value) 参数列表: 参数 描述 name 存储的数据名称. value 将要存储的任意数据. 实例代码: 复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-

  • jQuery $.data()方法使用注意细节

    前段时间同事在群里对jQuery里的.data()方法大发牢骚: XXX(NNNNNNN) 15:11:34 <a id="a" data-xxx="00123" /> alert($('#a').data('xxx'));//123 data方法不靠谱 XXX(NNNNNNN) 15:13:17 老老实实用attr('data-xxx')吧细研究了下jQuery文档对.data()方法的描述: 复制代码 代码如下: As of jQuery 1.4.3

  • 对 jQuery 中 data 方法的误解分析

    今天 谢亮 兄弟和我讨论一个东西的时候,谈到了性能,他用的是 attr 操作自定义属性 data-uid,我说用 data 好,因为是 dataset 实现,然后他去翻了下 jQuery 源码和我说,没有发现这个东西,我就纳闷了.于是我去仔细读了下 data 方法的源码,才发现我一直误会了,再此,向之前问我 data 方法的群友道歉,我 "骗" 了你们,你们来打我吧. 今天我就重新解释下 data 方法,先看下 jQuery 1.11.0 的手册里肿么说的吧,请移步至http://sh

  • Jquery中ajax方法data参数的用法小结

    复制代码 代码如下: $.ajax({   type: "POST",   url: "some.php",   data: "name=John&location=Boston", //第一种方式传参  // data: {name:"John",location:"Boston"}  //第二种方式传参  // data: {foo:["bar1", "bar2&q

  • jQuery中each()方法用法实例

    本文实例讲述了jQuery中each()方法用法.分享给大家供大家参考.具体分析如下: 此方法可以以匹配元素集合中每一个元素作为上下文去执行一个函数. 当每次执行函数时,函数的执行环境都是一个匹配元素集合中不同的DOM元素,并且会将此元素在集合中索引传递给此函数,索引值是从0开始的.通过返回false可用于提早停止循环运行,返回true将继续执行函数,直到匹配元素中每一个元素都遍历完成. each()方法不同于jQuery.each()方法 .each()方法只能够遍历JQuery对象,而jQu

  • jQuery中size()方法用法实例

    本文实例讲述了jQuery中size()方法用法.分享给大家供大家参考.具体分析如下: 此方法可以返回jQuery对象集合中元素的数目. size()方法的返回值与jQuery对象的length属性一致. 语法结构: 复制代码 代码如下: $(selector).size() 实例代码: 复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta na

  • jQuery中get()方法用法实例

    本文实例讲述了jQuery中get()方法用法.分享给大家供大家参考.具体分析如下: 此方法可以返回匹配集合中所有DOM元素的数组或者一个指定索引的DOM元素. 索引值是从0开始的. 说明:从上面的定义可以看出,此方法可以将jQuery对象转换成DOM对象. 语法结构一: 复制代码 代码如下: $(selector).get() 没有参数的时候会取得所有匹配的DOM元素的数组. 实例代码: 复制代码 代码如下: <!DOCTYPE html> <html> <head>

随机推荐