本文的目的是介绍将javascript插入javascripthtml返回的详细情况,特别关注怎么把js的值返回给html的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的
本文的目的是介绍将javascript插入javascript html返回的详细情况,特别关注怎么把js的值返回给html的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解将javascript插入javascript html返回的机会,同时也不会遗漏关于html5+javascript制作简易画板附图_javascript技巧、Javascript & DHTML上传文件控件_javascript技巧、javascript html 静态页面传参数_javascript技巧、javascript html5 canvas实现可拖动省份的中国地图_javascript技巧的知识。
本文目录一览:- 将javascript插入javascript html返回(怎么把js的值返回给html)
- html5+javascript制作简易画板附图_javascript技巧
- Javascript & DHTML上传文件控件_javascript技巧
- javascript html 静态页面传参数_javascript技巧
- javascript html5 canvas实现可拖动省份的中国地图_javascript技巧
将javascript插入javascript html返回(怎么把js的值返回给html)
function format ( d ) { return '<div>'+ '<table id="expand">'+ '<tr>'+ '<td><buttonvalue="Save" onclick="saveItem(this)" data-soli="'+d.soli+'" data-comments="'+d.comments+'" >Save</button></td>'+ '</tr>'+ '<tr>'+ '<td>Customer</td>'+ '<td>'+d.customer+'</td>'+ '<td>Value</td>'+ if (d.country !== "usd") { '<td>'+d.value+'</td>'+ } else { '<td>'+d.value+'</td>'+ } '<td>Comments</td>'+ '<td><input onblur="submitComments(this.value)" type="text"><br>'+d.comments+'</input></td>'+ '</tr>'+ '</table>'+ '</div>'; }
添加if子句时代码失败.这是语法问题吗?我如何打破HTML一秒钟,以便我可以在回报中添加额外的JavaScript?我的目标是在线路货币为美元时添加红色的td类,但我无法弄清楚如何让它工作.
解决方法
function format ( d ) { var css; if (d.country !== "usd") { css; } else{ css; } return '<div>'+ '<table id="expand">'+ '<tr>'+ '<td><buttonvalue="Save" onclick="saveItem(this)" data-soli="'+d.soli+'" data-comments="'+d.comments+'" >Save</button></td>'+ '</tr>'+ '<tr>'+ '<td>Customer</td>'+ '<td>'+d.customer+'</td>'+ '<td>Value</td>'+ '<td>'+d.value+'</td>'+ '<td>Comments</td>'+ '<td><input onblur="submitComments(this.value)" type="text"><br>'+d.comments+'</input></td>'+ '</tr>'+ '</table>'+ '</div>'; }
html5+javascript制作简易画板附图_javascript技巧
见图:
代码如下:
<script> <br><br>var c;//获取到的2d画板 <BR>var painting = false;//判断是否正在绘画,即鼠标左键是否长按下去 <BR>var canvas;//画板 <BR>$(function(){ <br><br>$(".eraseSeries").hide();//初始状态单选按钮组隐藏 <br><br>canvas=document.getElementById("myCanvas"); <BR>c=canvas.getContext("2d"); <BR>c.lineCap="round";//设置笔迹边角,否则笔迹会出现断层 <BR>c.stroke;//笔迹的颜色 <BR>c.lineWidth=5;//笔迹的粗细 <BR>$("#color").change(function(){//笔迹颜色发生改变时 <BR>if(eraseFlag==true)//处在擦皮状态 <BR>{ <BR>$("#erase").trigger("click");//自动触发橡皮的点击事件,以返回到画笔状态 <BR>} <BR>c.strokeStyle=$(this).val();//设置画笔状态 <BR>c.lineWidth=$(this).val(); <br><br>}); <br><br>$("#fontSize").change(function(){//画笔粗细发生改变 <BR>if(eraseFlag==true)//同上 <BR>{ <BR>$("#erase").trigger("click"); <BR>} <BR>c.lineWidth=$(this).val(); <BR>c.strokeStyle=$("#color").val(); <BR>//eraseFlag=false; <BR>}); <br><br>$(".eraseSeries").click(function(){//橡皮大小发生改变 <BR>var size=$(''input[name="eraseSize"]:checked'').val();//获取到橡皮单选按钮组的选中值 <BR>sizeE=size;//将该值传到全局变量上,sizeE需要用来控制橡皮样式的位置 <BR>c.lineWidth=size; <BR>$("#eraseImg").css({"width" :size+"px","height":size+"px"});//橡皮样式大小发生改变 <BR>}); <br><br>$("#erase").toggle(function(){//橡皮按钮的点击翻转事件 <BR>c.save();//保持上次设置的状态 <BR>eraseFlag=true; <BR>c.stroke; <br><br>$("#erase").text("画笔");//改变按钮上的文字 <BR>$(".eraseSeries").show(''fast'');//橡皮单选组出现 <BR>// $("#eraseImg").show(); <BR>sizeE=5; <br><br><BR>},function(){ <BR>eraseFlag=false; <BR>$("#erase").text("橡皮"); <BR>$(".eraseSeries").hide(''fast''); <BR>c.restore();//恢复上次画笔的状态(包括颜色,粗细等) <BR>}); <br><br><BR>//setInterval(paint,2); <br><br>}); <br><br>var p_x;//上次鼠标位置 <BR>var p_y; <BR>var p_x_now;//当前瞬间鼠标位置 <BR>var p_y_now; <BR>var eraseFlag=false; <BR>var sizeE;//橡皮大小 <br><br>$(document).mousedown(function(e){//鼠标按下触发事件 <br><br><BR>// alert(sizeE); <BR>p_x= e.clientX;//获取位置,并置为上次鼠标位置 <BR>p_y= e.clientY; <BR>painting = true;//画笔启动标志 <br><br>}); <BR>$(document).mousemove(function(e){//鼠标移动触发事件 <BR>if(eraseFlag==true&& e.clientY>30)//橡皮处在激活状态,并且鼠标Y的位置大于30,也即鼠标在画板内 <BR>{ <br><br>//橡皮图像跟随鼠标而动 <BR>$("#eraseImg").animate({left: e.clientX-sizeE+"px",top: e.clientY-sizeE+"px"},0).show(''fast''); <BR>} <BR>else <BR>{ <BR>$("#eraseImg").hide(''fast''); <BR>} <BR>if(painting==true)//处于画笔激活状态 <BR>{ <BR>//alert(1); <BR>p_x_now= e.clientX;//当前瞬间的鼠标位置 <BR>p_y_now= e.clientY; <BR>c.beginPath();//开始路径 <BR>//曲线是由一段段非常小的直线构成,计算机运算速度很快,这是一种以直线迭代画曲线的方式 <BR>c.moveTo(p_x-5-canvas.offsetLeft,p_y-5-canvas.offsetTop);//移动到起始点 <BR>c.lineTo(p_x_now-5-canvas.offsetLeft,p_y_now-5-canvas.offsetTop);//从起始点画直线到终点 <br><br>c.stroke(); <BR>c.closePath();//封闭路径,这个很重要,如果路径不封闭, <BR>// 那么只要canvas颜色发生改变,所有的之前画过的颜色都发生改变 <BR>p_x = p_x_now;//一次迭代后讲当前的瞬间坐标值赋给上次鼠标坐标值 <BR>p_y = p_y_now; <BR>} <br><br>}); <br><br>$(document).mouseup(function(e){//鼠标松开触发事件 <br><br>painting=false;//冻结画笔 <BR>}); <br><br></script>
5
10
15
20
30
Javascript & DHTML上传文件控件_javascript技巧
首先来做一个实例,批量上传的ui控件。以后一般做的示例也是以ui控件为主的。都是封装成object或者用function封装成"class"类。
上章基本上把要交代的基本知识都说了一些,今天终于开始写代码了:D
首先来做一个实例,批量上传的ui控件。以后一般做的示例也是以ui控件为主的。都是封装成object或者用function封装成"class"类。
也许对于单单看前几章的朋友来说这个例子过于深奥了,但是不用担心,一步步来解释应该很快理解的,关键是理解怎么做,而不是怎么写。
首先看一个成品截图预览:
一、接下来我们先说思路,首先定义一个upload"类",
一)、这个类的公共访问信息应该有:
1、构造函数中要传递一些必要的参数,比如,在哪个容器构造upload的信息。
2、必须有一个add()方法,用于添加一个upload
3、必须有一个remove()方法,用于删除一个upload
二)、这个类中应该有一些必要的信息,是生成实例本身所具有的信息,(upload对象的一些信息)。
1、得到一共多少个upload信息,
2、一个容器对象,这个对象也是从构造函数中传递。
整个图可以简单的表示为
二、我想我们该想想应该用到哪些知识,哪些是熟悉的,哪些是未知的。
一)、正如我们上面预览图所见到的,需要三个或以上的新控件。(添加,删除,还有一个file控件,也或者还有其它的...但至少眼睛见到的就这么多了),既然是新的信息,就会可能用到document.createElement,要添加进一个容器里就可能用到object.appendChild(obj)或者obj.insertBefore()方法。删除也就是obj.parentNode.removeChild(obj)。这些上一章都已经说过了。
二)、既然是控件,肯定得用function或者是一个对象(object)封装起来,对这部分知识,第一章已经简单的说明了
三)、如何组织呢?在上面的思路中也已经有了文字和图示
接下来就动手写:
一)、构造函数,以及基本的代码(伪代码)
复制代码 代码如下:
<script> <br/>function upload(target/*容器*/ <br/> ) <br/>{ <br/> this._cnt = 0; /*计数器*/ <br/> this.target = document.getElementById(target); <br/>}; <br/><br/>upload.prototype.add = function () { <br/> /* <br/> *生成一个 file <br/> *生成一个 添加 <br/> *生成一个 删除 <br/> *计数器+1 <br/> */ <br/>}; <br/><br/>upload.prototype.remove = function () { <br/> /* <br/> *删除一个 file <br/> *删除一个 添加 <br/> *删除一个 删除 <br/> */ <br/>}; <br/></script>
二、写出add方法的实现
复制代码 代码如下:
<script> <br/>upload.prototype.add = function () { <br/> /* <br/> *生成一个 file <br/> */ <br/> var self = this; var cnt = this._cnt; <br/> var cFile = document.createElement("input"); <br/> cFile.type="file"; cFile.name="upload"; <br/> cFile.id = "upload_file_" +cnt; <br/> /* <br/> *生成一个 添加 <br/> */ <br/> var cAdd = document.createElement("span"); <br/> cAdd.innerHTML="添加"; <br/> cAdd.onclick = function () { <br/> self.add(); <br/> }; <br/> /* <br/> *生成一个 删除 <br/> */ <br/> var cRemove = document.createElement("span"); <br/> cRemove.innerHTML="删除"; <br/> cRemove.onclick = function () { <br/> self.remove(cnt); <br/> }; <br/><br/> cAdd.id = "upload_add_" +cnt; <br/> cRemove.id = "upload_remove_" +cnt; <br/><br/> /* 把所有生成的信息添加到容器中 */ <br/> this.target.appendChild(cFile); <br/> this.target.appendChild(cAdd); <br/> this.target.appendChild(cRemove); <br/><br/> /* 计数器+1 */ <br/> this._cnt++; <br/><br/> return this; //返回 <br/>}; <br/></script>
三、写出remove方法的实现
复制代码 代码如下:
<script> <br/>upload.prototype.remove = function (n) { <br/> /* <br/> *删除一个 file <br/> */ <br/> var a = document.getElementById("upload_file_" +n); <br/> a.parentNode.removeChild(a); <br/> /* <br/> *删除一个 添加 <br/> */ <br/> var a = document.getElementById("upload_add_" +n); <br/> a.parentNode.removeChild(a); <br/> /* <br/> *删除一个 删除 <br/> */ <br/> var a = document.getElementById("upload_remove_" +n); <br/> a.parentNode.removeChild(a); <br/><br/> return this; <br/>} <br/></script>
上面remove方法过于重复,可考虑重新把remove再简化,从而使我们的代码更简短而且易于维护呢?在这里,我们把这个通用功能放到一个函数里,也就是多加一个函数:
立即学习“Java免费学习笔记(深入)”;
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
四、将代码组合一下,基本上可以算是完成了:D
复制代码 代码如下:
<script> <br/>function upload(target/*容器*/ <br/> ) <br/>{ <br/> this._cnt = 0; /*计数器*/ <br/> this.target = document.getElementById(target); <br/>}; <br/><br/>upload.prototype.add = function () { <br/> /* <br/> *生成一个 file <br/> */ <br/> var self = this; var cnt = this._cnt; <br/> var cFile = document.createElement("input"); <br/> cFile.type="file"; cFile.name="upload"; <br/> cFile.id = "upload_file_" +cnt; <br/> /* <br/> *生成一个 添加 <br/> */ <br/> var cAdd = document.createElement("span"); <br/> cAdd.innerHTML="添加"; <br/> cAdd.onclick = function () { <br/> self.add(); <br/> }; <br/> /* <br/> *生成一个 删除 <br/> */ <br/> var cRemove = document.createElement("span"); <br/> cRemove.innerHTML="删除"; <br/> cRemove.onclick = function () { <br/> self.remove(cnt); <br/> }; <br/><br/> cAdd.id = "upload_add_" +cnt; <br/> cRemove.id = "upload_remove_" +cnt; <br/><br/> /* 把所有生成的信息添加到容器中 */ <br/> this.target.appendChild(cFile); <br/> this.target.appendChild(cAdd); <br/> this.target.appendChild(cRemove); <br/><br/> /* 计数器+1 */ <br/> this._cnt++; <br/><br/> return this; //返回 <br/>}; <br/><br/>upload.prototype._removeNode = function (id) { <br/> var a=document.getElementById(id); <br/> a.parentNode.removeChild(a); <br/>}; <br/><br/>upload.prototype.remove = function (n) { <br/> /* <br/> *删除一个 file <br/> */ <br/> this._removeNode("upload_file_" +n); <br/> /* <br/> *删除一个 添加 <br/> */ <br/> this._removeNode("upload_add_" +n); <br/> /* <br/> *删除一个 删除 <br/> */ <br/> this._removeNode("upload_remove_" +n); <br/><br/> return this; <br/>} <br/></script>
五、OK,加上相关的html代码就好了:
复制代码 代码如下:
<script> <br/>//这里是上面我们写的控件代码,这里由于篇幅,我就不再贴了 <br/></script>
<script> <br/>var o=new upload("uploadConainer"); <br/>o.add(); <br/></script>
六、嗯,已经看到效果了吧,但似乎不太理想,全部添加的都粘在一起了,有必要要美化一下。从何处入手?这里可以有很多选择:
1、加一个换行符
2、每添加一个upload就再加一个容器p
...等
我们这里添加一个容器,如果以后还要加什么东西,会更好加一些,修改add:
复制代码 代码如下:
<script> <br/>upload.prototype.add = function () { <br/> /* <br/> *生成一个 file <br/> */ <br/> var self = this; var cnt = this._cnt; <br/> var cWrap = document.createElement("p"); <br/> cWrap.id = "upload_wrap_" +cnt; <br/> var cFile = document.createElement("input"); <br/> cFile.type="file"; cFile.name="upload"; <br/> cFile.id = "upload_file_" +cnt; <br/> /* <br/> *生成一个 添加 <br/> */ <br/> var cAdd = document.createElement("span"); <br/> cAdd.innerHTML="添加"; <br/> cAdd.onclick = function () { <br/> self.add(); <br/> }; <br/> /* <br/> *生成一个 删除 <br/> */ <br/> var cRemove = document.createElement("span"); <br/> cRemove.innerHTML="删除"; <br/> cRemove.onclick = function () { <br/> self.remove(cnt); <br/> }; <br/><br/> cAdd.id = "upload_add_" +cnt; <br/> cRemove.id = "upload_remove_" +cnt; <br/><br/> /* 把所有生成的信息添加到容器中 */ <br/> cWrap.appendChild(cFile); <br/> cWrap.appendChild(cAdd); <br/> cWrap.appendChild(cRemove); <br/> this.target.appendChild(cWrap); <br/><br/> /* 计数器+1 */ <br/> this._cnt++; <br/><br/> return this; //返回 <br/>}; <br/></script>
七、加上CSS美化一下,最后的代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> upload control - http://www.jb51.net </title> <style type="text/css" media="all" title="Default"> * { font-family:Arial; } body { font-size:10pt; } h1 { } #footer { font-size:9pt; margin:20px; } span { margin: 3px; text-decoration:underline; cursor:default; } </style> <script type="text/javascript"> //<![CDATA[ function upload(target) { this._cnt = 0; this.target = document.getElementById(target); }; upload.prototype.add = function () { var self = this; var cnt = this._cnt; var cWrap = document.createElement("div"); cWrap.id = "upload_wrap_" +cnt; var cFile = document.createElement("input"); cFile.type="file"; cFile.name="upload"; cFile.id = "upload_file_" +cnt; var cAdd = document.createElement("span"); cAdd.innerHTML="添加"; cAdd.onclick = function () { self.add(); }; var cRemove = document.createElement("span"); cRemove.innerHTML="删除"; cRemove.onclick = function () { self.remove(cnt); }; cAdd.id = "upload_add_" +cnt; cRemove.id = "upload_remove_" +cnt; cWrap.appendChild(cFile); cWrap.appendChild(cAdd); cWrap.appendChild(cRemove); this.target.appendChild(cWrap); this._cnt++; return this; }; upload.prototype._removeNode = function (id) { var a=document.getElementById(id); a.parentNode.removeChild(a); }; upload.prototype.remove = function (n) { this._removeNode("upload_file_" +n); this._removeNode("upload_add_" +n); this._removeNode("upload_remove_" +n); return this; }; onload = function () { var o = new upload("container"); o.add(); }; //]]> </script> </head> <body id="www.jb51.net"> <h1> batch upload control with javascript </h1> <div id="container"></div> <div id="footer">tutorial of DHTML and javascript programming, Power By jb51.net</div> </body> </html>
javascript html 静态页面传参数_javascript技巧
<script> <BR>function getParam() <BR>{ <BR>urlInfo=window.location.href; //获取当前页面的url <BR>intLen=urlInfo.length; //获取url的长度 <BR>offset=urlInfo.indexOf("?"); //设置参数字符串开始的位置 <BR>strKeyValue=urlinfo.substr(offset,len); //取出参数字符串 这里会获得类似“id=1”这样的字符串 <BR>arrParam=strKeyValue.split("="); //对获得的参数字符串按照“=”进行分割 <BR>strParamValue=arrParam[1]; //得到参数值 <BR>alert("您要传递的参数值是"+strParamValue); <BR>} <BR></script>