如何通过jquery显示动态的HTML代码(代码中包含js方法)

问题描述

目前在系统建设中遇到这么一个问题,比较棘手,在页面有一个div,当页面加载的时候通过jquery.html()方法动态加载一段HTML代码,其中HTML代码中含有js方法,类似于下面这个例子,通过加载这段代码后,页面会显示相应的按钮,并且点击事件也生效,但是我重新alert一下html时,只会显示【("<input type='button' value='ok' onclick='hello()'>】却没有了js方法,请大家帮我想想办法,怎么才能将html+js方法一同显示<BODY> <div id="info"></div></BODY></HTML><SCRIPT LANGUAGE="JavaScript"><!-- jQuery("#info").html("<input type='button' value='ok' onclick='hello()'><script language='javascript'>function hello(){alert('hello‘);}</script>"); alert(jQuery("#info").html());//--></SCRIPT> 问题补充:<BODY> <div id="info"><input type='button' value='ok' onclick='hello()'><script language='javascript'>function hello(){alert('hello‘);}</script> </div> </BODY> </HTML> <SCRIPT LANGUAGE="JavaScript"> <!-- alert(jQuery("#info").html()); //--> </SCRIPT> 如果我在页面上这样写的话,弹出的就是html+js方法,看来jquery对静态和动态的html处理是有区别的

解决方案

jquery 对html 里面含有SCRIPT会做一些处理。创建SCRIPT对象,设置相应属性,添加到document里面。所有你那样是获取不到的。
解决方案二:
读入代码后JS就被插入到<body>上,你单独取那个elm是无法取出js的,因为插入的js并不属于这个elm。
解决方案三:
jQuery("#info").html("<input type='button' value='ok' onclick='hello()'><script language='javascript'>function hello(){alert('hello');}</script>"); alert('hello‘); 写错了 alert('hello');

时间: 2024-11-29 08:58:45

如何通过jquery显示动态的HTML代码(代码中包含js方法)的相关文章

jquery显示隐藏元素的实现代码_jquery

$("#id").css('display','none'); $("#id").css('display','block'); 或  $("#id")[0].style.display = 'none'; $("#id")返回的是JQuery 它是个集合肯定没有display属性 $("#firstStep").hide(500);而且可以设置时间:("#firstStep").hid

实用jquery实现动态拼装json数组中的内容拼装table

问题描述 实用jquery实现动态拼装json数组中的内容拼装table 现有如下数组 Var json= [{"did":1,"businessType":"2-理赔","weekday":"2-周二","startTimeStr":"11:57:48","endTimeStr":"11:57:49","reserv

jQuery为动态生成的select元素添加事件的方法_jquery

项目中需要在点击按钮时动态生成select元素,为防止每次点击按钮时从服务器端获取数据(因为数据都是相同的),可以这样写代码 1.首先定义全局js变量 var strVoucherGroupSelect =""; 2.在js中写好获取服务端数据的代码 function genVoucherGroupSelect(rowID){ return $(strVoucherGroupSelect).attr("id", "sl_" + rowID).pa

jquery显示loading图片直到网页加载完成的方法

  本文实例讲述了jquery显示loading图片直到网页加载完成的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 <!DOCTYPE html> <html class="no-js"> <head> <meta charset='UTF-8'> <title>Simpl

jquery显示loading图片直到网页加载完成的方法_jquery

本文实例讲述了jquery显示loading图片直到网页加载完成的方法.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html> <html class="no-js"> <head> <meta charset='UTF-8'> <title>Simple Loader</title> <style> /* This only works with JavaScript, if it'

JQuery限制复选框checkbox可选中个数的方法

  这篇文章主要介绍了JQuery限制复选框checkbox可选中个数的方法,涉及jQuery操作复选框长度判断与属性修改的相关技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了JQuery限制复选框checkbox可选中个数的方法.分享给大家供大家参考.具体分析如下: 由于项目需要限制可批量操作的文件个数 所以写了一段小代码 如果选中个数大于允许的最大个数 其他复选框不能选择 如果小于则所有复选框都能选择 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1

三种动态加载js的jquery实例代码另附去除js方法_javascript技巧

复制代码 代码如下: !-- 这里为你提供了三种动态加载js的jquery实例代码哦,由于jquery是为用户提供方便的,所以利用jquery动态加载文件只要一句话$.getscript("test.js");就ok了. <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.

jquery html动态生成select标签出问题的解决方法_jquery

今天用jquery,用json从后台获取一个列表,准备在前台用一个动态生成的select标签显示出来... 结果一直不能显示,动态生成input,a 都是可以的 最后随便的在select前面敲了一堆11111111111111111111111 然后select出现了 怀疑可能跟空格有关,加了个 在select前面,没反应 之后又尝试了各种方法,还是不行 再从搜狗浏览器换成IE,FIREFOX, 没问题了 才发现是浏览器问题....浪费了3个多小时,无语了 搜狗浏览器也比较坑啊....哎 以后坚

动态创建script在IE中缓存js文件时导致编码的解决方法_javascript技巧

先看下重现代码 1, gb2312.html 该文件编码为gb2312 复制代码 代码如下: <!DOCTYPE html> <html> <head> <title></title> <meta charset="gb2312"/> <style> p { color: red; } </style> </head> <body> <button onclic