JS与CSS交互&表单验证

目录

一.基本概念

1.基本介绍

2.JavaScript 特效之四大家族

1.基本组成

(1)三大系列:offset、scroll、client

(2)事件对象:event

(3)三大家族区别

二.表单验证

1.表单验证思路


一.基本概念


1.基本介绍


CSS样式设置有三种方式:行内样式、内部样式和外部样式
JavaScript获取CSS样式时分为两种情况:行内样式获取法 和 非行内样式获取法。
行内样式:通过element.style.attr(元素.style.属性)即可获取可设置
非行内样式:
因浏览器的不同又分为两种,即基于IE浏览器的 和 非IE浏 览器的如谷歌火狐等。
基于IE浏览器的非行内获取法:通过 element.currentStyle['attr']
基于非IE如火狐谷歌等非行内获取法:通过 getComputedStyle(element.null/伪类)[attr]


2.JavaScript 特效之四大家族


1.基本组成


(1)三大系列:offset、scroll、client


①offset:偏移量,使用offset系列相关属性可以动态的得到该元素的位置(偏移)、大小等。


②client :我们使用 client 系列的相关属性来获取元素可视区的相关信息。通过 client 系列的相关属性可以动态的得到该元素的边框大小、元素大小等。


③scroll :我们使用 scroll 系列的相关属性可以动态的得到该元素的大小、滚动距离等

  • ScrollWidth 和 scrollHeight(不包括border)
    • 检测盒子的宽高。(调用者:节点元素。属性。)
    • 盒子内容的宽高。(如果有内容超出了,显示内容的高度)
    • IE567可以比盒子小。 IE8+火狐谷歌不能比盒子小
  • scrollTop 和 scrollLeft
    • 网页,被浏览器遮挡的头部和左边部分。
    • 被卷去的头部和左边部分。
    • 有兼容性问题
    • 未声明 DTD 时(谷歌只认识他)
    • document.body.scrollTop
    • 已经声明DTD 时(IE678只认识他)
    • document.documentElement.scrollTop
    • 火狐/谷歌/ie9+以上支持的
    • window.pageYOffset
    • var top = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;  
    • var top = document.documentElement.scrollTop + document.body.scrollTop;  

(2)事件对象:event

  • 在触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含着所有与事件有关的信息。
  • 所有浏览器都支持event对象,但支持的方式不同。比如鼠标操作时候,会添加鼠标位置的相关信息到事件对象中。
  • (类似Date)普通浏览器支持 event(带参,任意参数)ie 678 支持 window.event(无参,内置)
  • 总结:他是一个事件中的内置对象。内部装了很多关于鼠标和事件本身的信息。
  • 兼容获取方式
    • 不写参数直接使用event;
    • 写参数,但是参数为event
      • var event  = event || window.event;(主要用这种)
  • screenX、pageX 和 clientX 的区别
    • pageY/pageX: 鼠标位于整个网页页面的顶部和左侧部分的距离。(页面)
    • pcreenY/screenX: 鼠标位于屏幕的上方和左侧的距离。(屏幕)
    • clientX/clientY: 鼠标位于浏览器的左侧和顶部的距离。(浏览器大小和位置)
  • pageY 和 pageX 的兼容写法
    • 在页面的位置 = 看得见的 + 看不见的
      • pageY/pageX=event.clientY/clientX+scroll().top/scroll().left 

(3)三大家族区别


①Width 和 height
        clientWidth  = width  + padding
        clientHeight  = height + padding
        offsetWidth  = width  + padding + border
        offsetHeight  = height + padding + border
        scrollWidth   = 内容宽度(不包含border)
        scrollHeight  = 内容高度(不包含border)
②top 和 left
        offsetTop/offsetLeft :
                 调用者:任意元素。(盒子为主)
                 作用:距离父系盒子中带有定位的距离。
         scrollTop/scrollLeft:(盒子也可以调用,必须有滚动条)
                 调用者:document.body.scrollTop/.....(window)
                 作用:浏览器无法显示的部分(被卷去的部分)
        clientY/clientX:(clientTop/clientLeft 值的是border)
                 调用者:event.clientX(event)
                 作用:鼠标距离浏览器可视区域的距离(左、上)


案例:漂浮广告

<style>
#adv {
				position: absolute;
			}
 .dd_close{
	 width:35px;
	 height:18px;
	 text-align:center;
	 border:solid 1px #999;
	 background-color:#E0E0E0;
	 top:0px;
     right:0px;
     position:absolute;
	 }
</style>

<script type="text/javascript">
//漂浮广告
		var f1 = true;
		var f2 = true;
		var timer = null;

		function move() {
			//首先获取广告这个图片标签
			var adv = $("adv");

			//设置定时器控制left和top的值   
			timer = window.setInterval(function() {
				//获取到广告的left属性并且将其转成整数
				var myleft = parseInt(getStyle(adv, 'left'));
				//获取到广告的top属性并且将其转成整数
				var mytop = parseInt(getStyle(adv, "top"));
				// // 得到可视区的宽度,并且要减去广告本身的宽度,也要去除内外间距
				mywidth = myclient().width - adv.offsetWidth;
				// // 得到可视区的高度,并且要减去广告本身的高度,也要去除内外间距
				myheight = myclient().height - adv.offsetHeight;
				// 当定义的f1标签为true时就一直加反之则减

				if (f1 == true) {
					myleft += 10;
				}
				//当它一直加到超出了可视宽度时候,就把f1取反,停止加
				if (myleft > mywidth) {
					f1 = false;
				}
				if (f1 == false) {
					myleft -= 10;
				}
				if (myleft < 0) {
					f1 = true;
				}

				//当定义的f2标签为true时就一直加反之则减
				if (f2 === true) {
					mytop += 15;
				}
				//当它一直加到超出了可视宽度时候,就把f2取反,停止加
				if (mytop > myheight) {
					f2 = false;
				}
				if (f2 === false) {
					mytop -= 15;
				}
				if (mytop < 0) {
					f2 = true;
				}
				//重新设置宽度与高度
				adv.style.left = myleft + "px";
				adv.style.top = mytop + "px";
			}, 100)
		}


		function dd_close1() { //关闭漂浮广告的事件
			var myclo = $("dd_close1");
			myclo.style.display = "none";
			var myclo = $("adv");
			myclo.style.display = "none";
		}
		//漂浮广告结束

window.onload = function() {
			move(); //调用方法,让广告漂浮
			adv.onmouseover = function() { //移入就停止
				window.clearInterval(timer);
			}
			adv.onmouseout = function() {
				move(); //移出就继续漂浮
			}
		

		}
</script>

<body>
		<div id="adv">
			<div class="dd_close" id="dd_close1">
				<a href="javascript:dd_close1();">关闭</a>
			</div>
			<img src="images/dd_scroll.jpg" alt="" srcset="">
		</div>
</body>



二.表单验证


1.表单验证思路

  • 当输入的表单数据不符合要求时,可以使用以下方法进行提示:
    • ①获得表单元素值
    • ②使用JavaScript的一些方法对数据进行判断
    • ③当表单提交时,触发 onsubmit事件,对获取的数据进行验证

表单验证的处理方式

  • string对象提供的方法
    •   string常见方法
      • indexOf(), lastIndexOf() 查找字符位置
      • charAt() 按索引返回字符串
      • concat() 拼接字符串
      • substr()  按长度截取字符串
      • slice() 截取字符串
      • substring() 截取字符串
      • replace() 替换字符串
      • toUpperCase(), toLowerCase() 大小写转换

正则表达式【重点掌握】
        🐷测试字符串内的模式
        🐷替换文本
        🐷从字符串中提取字符串

定义方式
//字面量方式,其由包含在斜杠之间的模式组成,如下所示:
var re = /ab+c/;
//构造函数方式,调用RegExp对象的构造函数,如下所示:
var re = new RegExp("ab+c");
var regex = /正则规则/;
//调用方法判断是否满足要求

 *部分主要的正则*

  1. *:任意次(包括0)
  2. +: 至少出现一次 >=1  
  3. ?: 0或者1次
  4. -:连字符 [a-z] [0-9]
  5. .代表任意字符(除了\n)
  6. \. 表示真正的点
  7. |:或者
  8. [abcd] :在abcd里任选一个
  9. [abcd]{6}:在abcd里任选一个 重复6次
  10. [abcd]{3,}: 在abcd里任选一个  至少选3次
  11. [abcd]{3,6}:在abcd里任选一个  选3-6次
  12. [^abcd]:除了abcd以外的任意字符
  13. \d:相当于[0-9]阿拉伯数字  \d{6}
  14. \D:除了0-9以外的字符
  15. \w:[0-9a-zA-Z _]中间的任意一个
  16. \W:除了[0-9a-zA-Z _]中间的
  17. \s:空格
  18. \S:非空格

案例:表单验证

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<script type="text/javascript" src="js/register.js"></script>
	</head>
	<script type="text/javascript">
		function $(id) {
			return document.getElementById(id);
		}



		function checkRegister() { //条件通过同意跳转
			var a = emailBlur(); //邮箱
			var b = nickNameBlur(); //昵称
			var c = pwdBlur(); //密码
			var d = repwdBlur(); //再次确认密码
			if (a == true && b == true && c == true && d == true) {
				return true;
			}
			return false;
		}

		// 邮箱的获焦和失焦事件开始
		function emailFocus() { //邮箱获取焦点
			var email = $("email");
			var emails = $("email_prompt");
			emails.innerHTML = "请输入正确的邮箱格式,例如123@qq.com";
			email.style.backgroundColor = "yellow";
			emails.style.color = "gray";
		}

		function emailBlur() { //邮箱失去焦点
			var email = $("email").value;
			var emaill = $("email");
			var emails = $("email_prompt");
			emails.innerHTML = "";
			emaill.style.backgroundColor = "white";
			var regex = /12345/;
			var regex = /^\w+@\w+\.[a-zA-Z]{2,3}$/;
			if (!email) {
				emails.innerHTML = "邮箱不能为空!!";
				// emails.style.border="1";
				emails.style.fontWeight = "bold";
				return false;
			} else if (!(regex.test(email))) {
				emails.innerHTML = "邮箱格式不对请重新输入";
				emails.className = "error";
				emails.style.color = "red";
				emails.style.fontWeight = "bold";
				return false;
			}
			emails.style.color = "green";
			emails.style.fontWeight = "bolder";
			emails.innerHTML = "√";
			return true;
		}
		// 邮箱的获焦和失焦事件结束






		// 昵称的获焦和失焦事件开始
		function nickNameFocus() { //昵称获取焦点
			var nickNamee = $("nickName");
			var nickName = $("nickName_prompt");
			nickName.innerHTML = "请输入4-8位的昵称";
			nickNamee.style.backgroundColor = "yellow";
			nickName.style.color = "gray";
		}

		function nickNameBlur() {
			var nickNamee = $("nickName").value;
			var nickNames = $("nickName");
			var nickName = $("nickName_prompt");
			nickName.innerHTML = "";
			nickNames.style.backgroundColor = "white";
			var regex = /^\w{4,8}$/;
			if (!(regex.test(nickNamee))) {
				nickName.innerHTML = "昵称必须在4-8位数";
				nickName.style.color = "red";
				nickName.style.fontWeight = "bold";
				return false;
			}
			nickName.style.color = "green";
			nickName.style.fontWeight = "bolder";
			nickName.innerHTML = "√";
			return true;
		}
		// 昵称的获焦和失焦事件结束



		// 密码的获焦和失焦事件开始
		function pwdFocus() { //密码获取焦点
			var pwdd = $("pwd");
			var pwd = $("pwd_prompt");
			pwd.innerHTML = "请输入6-12位的密码";
			pwdd.style.backgroundColor = "yellow";
			pwd.style.color = "gray";

		}

		function pwdBlur() {
			var pwd = $("pwd").value;
			var pwdd = $("pwd");
			var pwds = $("pwd_prompt");
			pwds.innerHTML = "";
			pwdd.style.backgroundColor = "white";
			var regex = /^\w{6,12}$/;
			if (!(regex.test(pwd))) {
				pwds.innerHTML = "密码必须在6-12位数";
				pwds.style.color = "red";
				pwds.style.fontWeight = "bold";
				return false;
			}
			pwds.style.color = "green";
			pwds.style.fontWeight = "bolder";
			pwds.innerHTML = "√";
			return true;
		}
		// 密码的获焦和失焦事件结束



		// 确认密码的获焦和失焦事件开始
		function repwdFocus() { //密码获取焦点
			var repwdd = $("repwd");
			var repwd = $("repwd_prompt");
			repwd.innerHTML = "请再次输入密码";
			repwdd.style.backgroundColor = "yellow";
			repwd.style.color = "gray";

		}

		function repwdBlur() {
			var mypwd1 = $("pwd").value; //第一次的密码
			var mypwd2 = $("repwd").value; //第二次的密码
			var repwdd = $("repwd");
			var repwds = $("repwd_prompt");
			repwds.innerHTML = "";
			repwdd.style.backgroundColor = "white";
			var regex = /^\w{6,12}$/;
			if (!(mypwd1 == mypwd2)) {
				repwds.innerHTML = "两次密码不一样";
				repwds.style.color = "red";
				repwds.style.fontWeight = "bold";
				return false;
			}
			repwds.style.color = "green";
			repwds.style.fontWeight = "bolder";
			repwds.innerHTML = "√";
			return true;
		}
		// 确认密码的获焦和失焦事件结束



		window.onload = function() {
			for (var i in citydata) {
				var province = $("province")
				// console.log(i);
				province.add(new Option(i, i)); //往第一个下拉框(省份)添加内容
			}

			$("province").onchange = function() { //为第一个下拉框添加改变事件,当省份发生变化,城市也随之而变化
				$("city").length = 0;
				for (var i in citydata) {
					if (i == this.value) {
						for (var j in citydata[i]) {
							$("city").add(new Option(citydata[i][j], citydata[i][j])); //往第二个下拉框(省份)添加内容
						}
					}
				}
			}
		}
	</script>
	<body>
		<div id="header">
			<div id="register_header">
				<div class="register_header_left"><img src="images/logo.gif" alt="logo"></div>
				<div class="register_header_right"><a href="主页.html" class="blue">首页</a> | <a href="产品列表.html"
						class="blue">商品展示页</a> | <a href="购物车.html" class="blue">购物车</a> | <a href="登录.html"
						class="blue">登录</a></div>
			</div>
		</div>
		<div id="main">
			<div class="register_content">
				<div class="register_top_bg"></div>
				<div class="register_mid_bg">
					<ul>
						<li class="register_mid_left">填写注册信息</li>
						<li class="register_mid_mid">2. 邮箱验证</li>
						<li class="register_mid_right">3. 完成注册</li>
					</ul>
				</div>
				<div class="register_top_bg_mid">
					<div class="register_top_bg_two_left"></div>
					<div class="register_top_bg_two_right"></div>
					<div class="register_title_bg"><img src="images/register_pic_02.gif"
							alt="欢迎注册"><br>您所提供的资料不会做其他用途,敬请安心填写。</div>
				</div>
				<div class="register_dotted_bg"></div>
				<div class="register_message">
					<form action="登录.html" method="get" id="myform" onSubmit="return checkRegister()">
						<dl class="register_row">
							<dt>Email地址:</dt>
							<dd><input id="email" type="text" class="register_input" onFocus="emailFocus()"
									onBlur="emailBlur()"></dd>
							<dd>
								<div id="email_prompt"></div>
							</dd>
						</dl>
						<dl class="register_row">
							<dt>设置昵称:</dt>
							<dd><input id="nickName" type="text" class="register_input" onFocus="nickNameFocus()"
									onBlur="nickNameBlur()"></dd>
							<dd>
								<div id="nickName_prompt"></div>
							</dd>
						</dl>
						<dl class="register_row">
							<dt>设定密码:</dt>
							<dd><input id="pwd" type="password" class="register_input" onFocus="pwdFocus()"
									onBlur="pwdBlur()"></dd>
							<dd>
								<div id="pwd_prompt"></div>
							</dd>
						</dl>
						<dl class="register_row">
							<dt>再输入一次密码:</dt>
							<dd><input id="repwd" type="password" class="register_input" onFocus="repwdFocus()"
									onBlur="repwdBlur()"></dd>
							<dd>
								<div id="repwd_prompt"></div>
							</dd>
						</dl>
						<dl class="register_row">
							<dt>性别:</dt>
							<dd><input name="sex" id="man" type="radio" value="男" checked> <label for="man">男</label>
							</dd>
							<dd> <input name="sex" id="woman" type="radio" value="女"> <label for="woman">女</label></dd>
						</dl>
						<dl class="register_row">
							<dt>所在地区:</dt>
							<dd>
								<select id="province" style="width:120px;">
									<option>请选择省/城市</option>
								</select>
							</dd>
							<dd><select id="city" style="width:130px;">
									<option>请选择城市/地区</option>
								</select></dd>
						</dl>
						<div class="registerBtn"><input id="registerBtn" type="image" src="images/register_btn_out.gif"
								onMouseOver="btn_over()" onMouseOut="btn_out()"></div>
					</form>
				</div>


			</div>
		</div>
		<!--网站版权部分开始-->
		<div id="footer">
			<iframe src="底部版权信息.html" height="50px" width="900px" frameborder="0"></iframe>
		</div>
	</body>
</html>

二级联动的代码 

citydata = {
	"安徽": [
		"合肥",
		"芜湖",
		"蚌埠",
		"淮南",
		"马鞍山",
		"淮北",
		"铜陵",
		"安庆",
		"黄山",
		"阜阳",
		"宿州",
		"滁州",
		"六安",
		"宣城",
		"池州",
		"亳州",
		"其他"
	],
	"北京": [
		"北京"
	],
	"重庆": [
		"重庆"
	],
	"福建": [
		"福州",
		"厦门",
		"莆田",
		"三明",
		"泉州",
		"漳州",
		"南平",
		"龙岩",
		"宁德",
		"平潭",
		"其他"
	],
	"甘肃": [
		"兰州",
		"嘉峪关",
		"金昌",
		"白银",
		"天水",
		"酒泉",
		"张掖",
		"武威",
		"定西",
		"陇南",
		"平凉",
		"庆阳",
		"临夏回族自治州",
		"甘南藏族自治州",
		"其他"
	],
	"广东": [
		"广州",
		"深圳",
		"珠海",
		"汕头",
		"佛山",
		"韶关",
		"湛江",
		"肇庆",
		"江门",
		"茂名",
		"惠州",
		"梅州",
		"汕尾",
		"河源",
		"阳江",
		"清远",
		"东莞",
		"中山",
		"潮州",
		"揭阳",
		"云浮",
		"其他"
	],
	"广西": [
		"南宁",
		"柳州",
		"桂林",
		"梧州",
		"北海",
		"防城港",
		"钦州",
		"贵港",
		"玉林",
		"百色",
		"贺州",
		"河池",
		"来宾",
		"崇左",
		"南宁",
		"柳州",
		"其他"
	],
	"贵州": [
		"贵阳",
		"六盘水",
		"遵义",
		"安顺",
		"毕节",
		"铜仁",
		"黔西南",
		"黔东南",
		"黔南",
		"其他"
	],
	"海南": [
		"海口",
		"三亚",
		"三沙",
		"儋州",
		"其他"
	],
	"河北": [
		"石家庄",
		"唐山",
		"秦皇岛",
		"邯郸",
		"邢台",
		"保定",
		"张家口",
		"承德",
		"沧州",
		"廊坊",
		"衡水",
		"定州",
		"辛集",
		"其他"
	],
	"黑龙江": [
		"哈尔滨",
		"齐齐哈尔",
		"鸡西",
		"鹤岗",
		"双鸭山",
		"大庆",
		"伊春",
		"佳木斯",
		"七台河",
		"牡丹江",
		"黑河",
		"绥化",
		"大兴安岭",
		"绥芬河",
		"抚远",
		"其他"
	],
	"河南": [
		"郑州",
		"开封",
		"洛阳",
		"平顶山",
		"安阳",
		"鹤壁",
		"新乡",
		"焦作",
		"濮阳",
		"许昌",
		"漯河",
		"三门峡",
		"南阳",
		"商丘",
		"周口",
		"信阳",
		"驻马店",
		"济源",
		"其他"
	],
	"湖北": [
		"武汉",
		"黄石",
		"十堰",
		"宜昌",
		"襄阳",
		"鄂州",
		"荆门",
		"孝感",
		"荆州",
		"黄冈",
		"咸宁",
		"随州",
		"恩施土家族苗族自治州",
		"仙桃",
		"潜江",
		"天门",
		"神农架",
		"其他"
	],
	"湖南": [
		"长沙",
		"株洲",
		"湘潭",
		"衡阳",
		"邵阳",
		"岳阳",
		"常德",
		"张家界",
		"益阳",
		"郴州",
		"永州",
		"怀化",
		"娄底",
		"湘西土家族苗族自治州",
		"其他"
	],
	"内蒙古": [
		"呼和浩特",
		"包头",
		"乌海",
		"赤峰",
		"通辽",
		"鄂尔多斯",
		"呼伦贝尔",
		"巴彦淖尔",
		"乌兰察布盟",
		"兴安盟",
		"锡林郭勒盟",
		"阿拉善盟",
		"其他"
	],
	"江苏": [
		"南京",
		"无锡",
		"徐州",
		"常州",
		"苏州",
		"南通",
		"连云港",
		"淮安",
		"盐城",
		"扬州",
		"镇江",
		"泰州",
		"宿迁",
		"其他"
	],
	"江西": [
		"南昌",
		"九江",
		"上饶",
		"抚州",
		"宜春",
		"吉安",
		"赣州",
		"景德镇",
		"萍乡",
		"新余",
		"鹰潭",
		"其他"
	],
	"吉林": [
		"长春",
		"吉林",
		"四平",
		"辽源",
		"通化",
		"白山",
		"白城",
		"松原",
		"延边朝鲜族自治州",
		"吉林省长白山保护开发区",
		"梅河口",
		"公主岭",
		"其他"
	],
	"辽宁": [
		"沈阳",
		"大连",
		"鞍山",
		"抚顺",
		"本溪",
		"丹东",
		"锦州",
		"营口",
		"阜新",
		"辽阳",
		"盘锦",
		"铁岭",
		"朝阳",
		"葫芦岛",
		"其他"
	],
	"宁夏": [
		"银川",
		"石嘴山",
		"吴忠",
		"固原",
		"中卫",
		"其他"
	],
	"青海": [
		"西宁",
		"海东",
		"海北",
		"黄南",
		"海南",
		"果洛",
		"玉树",
		"海西"
	],
	"山西": [
		"太原",
		"大同",
		"阳泉",
		"长治",
		"晋城",
		"朔州",
		"晋中",
		"运城",
		"忻州",
		"临汾",
		"吕梁",
		"其他"
	],
	"山东": [
		"济南",
		"青岛",
		"淄博",
		"枣庄",
		"东营",
		"烟台",
		"潍坊",
		"济宁",
		"泰安",
		"威海",
		"日照",
		"莱芜",
		"临沂",
		"德州",
		"聊城",
		"滨州",
		"菏泽",
		"其他"
	],
	"上海": [
		"上海"
	],
	"四川": [
		"成都",
		"绵阳",
		"自贡",
		"攀枝花",
		"泸州",
		"德阳",
		"广元",
		"遂宁",
		"内江",
		"乐山",
		"资阳",
		"宜宾",
		"南充",
		"达州",
		"雅安",
		"阿坝",
		"甘孜",
		"凉山",
		"眉山",
		"广安",
		"巴中",
		"其他"
	],
	"天津": [
		"天津"
	],
	"西藏": [
		"拉萨",
		"昌都",
		"山南",
		"日喀则",
		"那曲",
		"阿里",
		"林芝",
		"其他"
	],
	"新疆": [
		"乌鲁木齐",
		"克拉玛依",
		"吐鲁番",
		"哈密",
		"阿克苏",
		"喀什",
		"和田",
		"昌吉",
		"博尔塔拉",
		"巴音郭楞",
		"克孜勒苏",
		"伊犁",
		"其他"
	],
	"云南": [
		"昆明",
		"曲靖",
		"玉溪",
		"昭通",
		"保山",
		"丽江",
		"普洱",
		"临沧",
		"德宏",
		"怒江",
		"迪庆",
		"大理",
		"楚雄",
		"红河",
		"文山",
		"西双版纳",
		"其他"
	],
	"浙江": [
		"杭州",
		"宁波",
		"温州",
		"嘉兴",
		"湖州",
		"绍兴",
		"金华",
		"衢州",
		"舟山",
		"台州",
		"丽水",
		"其他"
	],
	"陕西": [
		"西安",
		"宝鸡",
		"铜川",
		"咸阳",
		"渭南",
		"延安",
		"汉中",
		"榆林",
		"安康",
		"商洛",
		"杨凌示范区",
		"其他"
	]
}

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是辉辉啦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值