Jquary入门(添加 修改 表单元素)+ JSON+弹框

时间:2023-01-06 10:42:20

字符串拼接

计算机语言 都是 对  数据的处理(获取/修改数据)  添加元素  除了  固定的方法添加 以外 都是   字符串拼接(拼接成固定格式即可执行)。

JQ对象与DOM 对象之间转化;

刚开始学习jquery,可能一时会分不清楚哪些是jQuery对象,哪些是DOM对象。至于DOM对象不多解释,我们接触的太多了,下面重点介绍一下jQuery,以及两者相互间的转换。 什么是jQuery对象?
---就是通过jQuery包装DOM对象后产生的对象。jQuery对象是jQuery独有的,其可以使用jQuery里的方法。
比如:
$("#test").html() 意思是指:获取ID为test的元素内的html代码。其中html()是jQuery里的方法
这段代码等同于用DOM实现代码:
document.getElementById("id").innerHTML;
虽然jQuery对象是包装DOM对象后产生的,但是jQuery无法使用DOM对象的任何方法,同理DOM对象也不能使用jQuery里的方法.乱使用会报错。比如:$("#test").innerHTML、document.getElementById("id").html()之类的写法都是错误的。
还有一个要注意的是:用#id作为选择符取得的是jQuery对象与document.getElementById("id")得到的DOM对象,这两者并不等价。请参看如下说的两者间的转换。
既然jQuery有区别但也有联系,那么jQuery对象与DOM对象也可以相互转换。在再两者转换前首先我们给一个约定:如果一个获取的是jQuery对象,那么我们在变量前面加上$,如:var $variab = jQuery对象;如果获取的是DOM对象,则与习惯普通一样:var variab = DOM对象;这么约定只是便于讲解与区别,实际使用中并不规定。 jQuery对象转成DOM对象:
两种转换方式将一个jQuery对象转换成DOM对象:[index]和.get(index);
()jQuery对象是一个数据对象,可以通过[index]的方法,来得到相应的DOM对象。
如:var $v =$("#v") ; //jQuery对象
var v=$v[]; //DOM对象
alert(v.checked) //检测这个checkbox是否被选中
()jQuery本身提供,通过.get(index)方法,得到相应的DOM对象
如:var $v=$("#v"); //jQuery对象
var v=$v.get(); //DOM对象
alert(v.checked) //检测这个checkbox是否被选中 DOM对象转成jQuery对象:
对于已经是一个DOM对象,只需要用$()把DOM对象包装起来,就可以获得一个jQuery对象了。$(DOM对象)
如:var v=document.getElementById("v"); //DOM对象
var $v=$(v); //jQuery对象
转换后,就可以任意使用jQuery的方法了。
通过以上方法,可以任意的相互转换jQuery对象和DOM对象。需要再强调注意的是:DOM对象才能使用DOM中的方法,jQuery对象是不可以用DOM中的方法。 下面是其它的相关使用方法:
、DOM对象转jQuery对象
普通的Dom对象一般可以通过$()转换成jQuery对象。 如:$(document.getElementById("msg"))
返回的就是jQuery对象,可以使用jQuery的方法。 、jQuery对象转DOM对象
由于jQuery对象本身是一个集合。所以如果jQuery对象要转换为Dom对象则必须取出其中的某一项,一般可通过索引取出。
如: $("#msg")[],$("div").eq()[],$("div").get()[],$("td")[] 这些都是Dom对象,可以使用Dom中的方法,但不能再使用jQuery的方法。 以下几种写法都是正确的:
$("#msg").html();
$("#msg")[].innerHTML;
$("#msg").eq()[].innerHTML;
$("#msg").get().innerHTML;

JQ对象与DOM对象转化

1.表单添加元素  append() 方法

<select id="sel">
</select> <input type="text" id="shuru" />
<input type="button" value="添加" id="btn" />

  JQ 部分:

$("#a").click(function(){}); 表示添加点击事件, 页面加载完毕 就 已经添加  而不是 只有点击 时才添加

js中 字符串赋值給  一个值    该值  不能加 双引号(必须加引号 来拼接成固定格式时 需要用 字符串拼接++)  (如果加双引号 则表示 该值为字符串 例如   var a=“eret”; alert(“a”)则输出 a; ) 该值拼接到字符串里面  需要 用  ++拼接  ;在 PHP 中 同样  使用 {}来解析

$("#btn").click(function(){
var v = $("#shuru").val();
//造元素
var op = document.createElement("option");
op.setAttribute("value",v);
op.innerHTML = v; $("#sel").append(op); //追加 })

创建元素的方法

 $("#btn").click(function(){
var v = $("#shuru").val();
var str = "<option value='"+v+"'>"+v+"</option>";
$("#sel").append(str); //追加 })

拼接字符串方法+append()

2.remove()   方法;这种移除能移除相同页面内所有的相同 元素   ;  如果只是移除 某一位置的  需要  for循环  【结合JS里面的 父级和子集做】

 $("#yichu").click(function(){
var v = $("#shuru").val(); $("[value='"+v+"']").remove(); //移除
})

移除

3.JSON数组   和  关联数组 联系起来看

 <script type="text/javascript">

     var js = {
"one":"hello",
"two":"world",
"three":"汉族"
}; alert(js.three); //使用foreach的形式来遍历JSON数据
for(var k in js)
{
alert(js[k]);
} </script>

JSON

 <script type="text/javascript">

     var js = {
"one":"hello",
"two":"world",
"three":{
"e":"你好",
"e1":"我好",
"e2":"大家好"
}
}; alert(js.three.e2); </script>

json(2)

4. 向按钮上面添加/移除事件 (bind/unbind)

<body>

<input type="button" value="挂事件" id="gua" />
<input type="button" value="测试事件" id="ceshi" />
<input type="button" value="移除事件" id="yichu" /> </body>
<script type="text/javascript"> $(document).ready(function(e) { //点击给测试事件按钮挂一个事件
$("#gua").click(function(){
//bind方法用于挂事件
$("#ceshi").bind("click",function(){
alert("挂上了事件");
}); }) //点击给测试事件按钮移除点击事件
$("#yichu").click(function(){
$("#ceshi").unbind("click");
}) }); </script>
</html>

绑定 移除事件

5.弹框例题:(需要在安装JQ包的情况下使用)  重点 看一下   JS  面向对象的方法  【自己研究步骤】

      (外部)样式表

.zhuti
{
position:absolute;
z-index:;
font-size:14px;
border-radius:5px;
box-shadow: 5px white;
overflow:hidden;
color:#;
}
.title
{
background-color:#3498db;
vertical-align:middle;
height:35px;
width:%;
line-height:35px;
text-indent:1em;
}
.close{
float:right;
width:35px;
height:35px;
font-weight:bold;
line-height:35px;
vertical-align:middle;
color:white;
font-size:18px;
}
.close:hover
{
cursor:pointer;
}
.content
{
text-indent:1em;
padding-top:10px;
}
.btnx
{
height:30px;
width:%;
text-indent:1em;
}
.btn
{
height:28px;
width:80px;
float:left;
margin-left:20px;
color:#;
}
#zz
{
width:%;
height:%;
opacity:0.15;
display:none;
background-color:#ccc;
z-index:;
position:absolute;
top:0px;
left:0px;
}

tanchuang.css

      (外部)JS部分

 // 每个弹窗的标识
var x =; var idzt = new Array(); var Window = function(config){ //ID不重复
idzt[x] = "zhuti"+x; //弹窗ID //初始化,接收参数
this.config = {
width : config.width || , //宽度
height : config.height || , //高度
buttons : config.buttons || '', //默认无按钮
title : config.title || '标题', //标题
content : config.content || '内容', //内容
isMask : config.isMask == false?false:config.isMask || true, //是否遮罩
isDrag : config.isDrag == false?false:config.isDrag || true, //是否移动
}; //加载弹出窗口
var w = ($(window).width()-this.config.width)/;
var h = ($(window).height()-this.config.height)/; var nr = "<div class='zhuti' id='"+idzt[x]+"' bs='"+x+"' style='width:"+this.config.width+"px; height:"+this.config.height+"px; background-color:white; left:"+w+"px; top:"+h+"px;'></div>";
$("body").append(nr); //加载弹窗标题
var content ="<div id='title"+x+"' class='title' bs='"+x+"'>"+this.config.title+"<div id='close"+x+"' class='close' bs='"+x+"'>×</div></div>";
//加载弹窗内容
var nrh = this.config.height - ;
content = content+"<div id='content"+x+"' bs='"+x+"' class='content' style='width:100%; height:"+nrh+"px;'>"+this.config.content+"</div>";
//加载按钮
content = content+"<div id='btnx"+x+"' bs='"+x+"' class='btnx'>"+this.config.buttons+"</div>"; //将标题、内容及按钮添加进窗口
$('#'+idzt[x]).html(content); //创建遮罩层
if(this.config.isMask)
{
var zz = "<div id='zz'></div>";
$("body").append(zz);
$("#zz").css('display','block');
} //最大最小限制,以免移动到页面外
var maxX = $(window).width()-this.config.width;
var maxY = $(window).height()-this.config.height;
var minX = ,
minY = ; //窗口移动
if(this.config.isDrag)
{
//鼠标移动弹出窗
$(".title").bind("mousedown",function(e){ var n = $(this).attr("bs"); //取标识 //使选中的到最上层
$(".zhuti").css("z-index",);
$('#'+idzt[n]).css("z-index",); //取初始坐标
var endX = , //移动后X坐标
endY = , //移动后Y坐标
startX = parseInt($('#'+idzt[n]).css("left")), //弹出层的初始X坐标
startY = parseInt($('#'+idzt[n]).css("top")), //弹出层的初始Y坐标
downX = e.clientX, //鼠标按下时,鼠标的X坐标
downY = e.clientY; //鼠标按下时,鼠标的Y坐标 //绑定鼠标移动事件
$("body").bind("mousemove",function(es){ endX = es.clientX - downX + startX; //X坐标移动
endY = es.clientY - downY + startY; //Y坐标移动 //最大最小限制
if(endX > maxX)
{
endX = maxX;
} else if(endX < )
{
endX = ;
}
if(endY > maxY)
{
endY = maxY;
} else if(endY < )
{
endY = ;
} $('#'+idzt[n]).css("top",endY+"px");
$('#'+idzt[n]).css("left",endX+"px"); window.getSelection ? window.getSelection().removeAllRanges():document.selection.empty(); //取消选中文本 });
});
//鼠标按键抬起,释放移动事件
$("body").bind("mouseup",function(){ $("body").unbind("mousemove"); });
} //关闭窗口
$(".close").click(function(){ var m = this.getAttribute("bs"); //找标识
$('#'+idzt[m]).remove(); //移除弹窗
$('#zz').remove(); //移除遮罩 }) x++; //标识增加 }

tanchuang.js

       主页

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript" src="jquery-1.11.2.min.js">
</script>
<script type="text/javascript" src="tanchuang.js">
</script>
<link href="tanchuang.css" rel="stylesheet" type="text/css" />
<style type="text/css">
*{
margin: 0px auto;
}
</style>
</head> <body style="background-color:#999">
<div style="width:200px; margin-top:10px">
<input type="button" value="弹出窗口" id="btntc" style="width:100px; height:30px; font-size:18px;" />
</div> </body>
<script type="text/javascript">
$(document).ready(function(e) { $('#btntc').click(function(){ var html = "<div style='color:red'>这是测试的弹窗</div>";
var button ="<input type='button' value='确定' /><input type='button' value='取消' />"; var win = new Window({ width : , //宽度
height : , //高度
title : '测试弹窗', //标题
content : html, //内容
isMask : false, //是否遮罩
buttons : button, //按钮
isDrag:true, //是否移动 }); })
});
</script>
</html>

主页部分

Jquary入门(添加 修改  表单元素)+ JSON+弹框

Jquary入门(添加 修改 表单元素)+ JSON+弹框的更多相关文章

  1. CSS3过渡结束监听事件&comma;清除&sol;修改表单元素的一些默认样式

    document.querySelector('div').addEventListener('transitionEnd',function(){ console.log('过度结束') }) 如果 ...

  2. form表单 无法提交js动态添加的表单元素问题。。

    第一种情况, 这种情况js动态添加的表单元素是不能提交到服务器端的 <table> <form method="post" action=" url   ...

  3. 修改表单元素中placeholder属性样式、清除IE浏览器中input元素的清除图标和眼睛图标

    一.修改input元素placeholder属性样式 在做项目的时候,一般表单元素的placeholder属性样式都是使用浏览器默认的,但有时候为了追求设计上的美感需要修表单元素的placeholde ...

  4. 构造AJAX参数, 表单元素JSON相互转换

    ajax提交服务器数据, 整理一下转换方法. HTML: <form id="fm" name="fm" action=""> ...

  5. easyui dialog 表单提交,弹框初始化赋值,dialog实现

    //定义弹框html<div id="delete" class="easyui-dialog" title="Delete" dat ...

  6. javascript动态添加form表单元素

    2014年11月7日 17:10:40 之前写过几篇类似的文章,现在看来比较初级,弄一个高级的简单的 情景: 后台要上传游戏截图,截图数量不确定,因此使用动态添加input节点的方法去实现这个效果 主 ...

  7. jQuery获取Select选择的Text&lpar;非表单元素&rpar;和 Value(表单元素)&lpar;转&rpar;

    jQuery获取Select选择的Text和Value: 语法解释: . $("#select_id").change(function(){//code...}); //为Sel ...

  8. jQuery 表单元素取值与赋值方法总结

    一.普通文本框的赋值与取值 1.1.1赋值 <h2>jQuery 表单元素取值与赋值方法总结</h2> <input type="text" clas ...

  9. jQuery 获取、设置表单元素的值

    获取表单元素值: 文本框,文本区域: $("#txt").attr("value"): 多选框 checkbox:$("#checkbox_id&qu ...

随机推荐

  1. c&num;向数据库插入较大数据(SqlBulkCopy)

    因为要向数据库添加一些数据,数据量较大 1.使用sql语句批量提交速度较慢 2.用事物批量提交,速度一般 3.用SqlBulkCopy方法写入数据,速度较快 /// <summary> / ...

  2. POJ 2823 Sliding Window

    Sliding Window Time Limit: 12000MSMemory Limit: 65536K Case Time Limit: 5000MS Description An array ...

  3. SQL数据库开发知识总结:基础篇

    1数据库概述 (1) 用自定义文件格式保存数据的劣势. (2) DBMS(DataBase Management System,数据库管理系统)和数据库,平时谈到”数据库”可能有两种含义:MSSQL ...

  4. Save output to a text file from Mac terminal

      Simply with output redirection: system_profiler > file.txt Basically, this will take the output ...

  5. 数据库的四种语言&lpar;DDL、DML、DCL、TCL&rpar;

    1.DDL (Data Definition Language )数据库定义语言 statements are used to define the database structure or sch ...

  6. 如何处理 Windows Phone 8 动态砖变成黑白砖

    原文:如何处理 Windows Phone 8 动态砖变成黑白砖 ? 问题的来龙去脉 我的 Windows Phone 8 动态砖变成黑白砖,所有图示和文字变成黑白,该如何处理? ? 问题的发生原因 ...

  7. Java中Excel导入功能实现、excel导入公共方法&lowbar;POI -

    这是一个思路希望能帮助到大家:如果大家有更好的解决方法希望分享出来 公司导入是这样做的 每个到导入的地方 @Override public List<DataImportMessage> ...

  8. leetcode笔记--SUM问题

    引用自 http://blog.csdn.net/wangxiaojun911/article/details/18922337,此处仅作为自己参考 1.Two SUM Given an array ...

  9. 查看Linux机器名

    uname -a hostname vim /etc/sysconfig/network

  10. Docker修改daemon&period;json后无法启动的问题

    本文的运行环境为Centos 7.3,Docker与Kubernetes的安装方式见kubeadm安装kubernetes V1.11.1 集群 最近在整理Docker和Kubernetes中的日志与 ...