php jq判断div是否隐藏分布如果不是首页,则首页的一个div不显示

10119查看|4回复
分享给大家曾经自学html、div+css、js、php+mysql学习笔记
阅读权限50
签到天数: 26 天该用户今日未签到
高级站长(签名可锚链), 积分 1078, 距离下一级还需 1922 积分
在线时间175 小时
马上注册,一起探讨正确快速的建站方法
才可以下载或查看,没有帐号?
本帖最后由 蓝牙 于
19:26 编辑
html div css基础style
width
height
background
div(division)
div布局 css控制显示效果
标签体现语义
标注浏览器此处格式为css
&style type=&text/css&&
【外部引用css】
&link rel=&stylesheet& href=&02.css& type=&text/css& /&
css格式
#id {
& & & & /*
& & & & 属性名:属性值;
& & & & */
}
【盒子模型】
推荐把div理解为一个木头盒子,右边框(厚-自定义像素、内容与边框内部距离-内边距、盒子本身大小-宽高、盒子与盒子之间距离-外边据)
width(允许写内容的大小)
height(允许写内容的大小)
边框 border
内边距 padding
外边距 margin
边距控制 上右下左
【几种选择器】
标签选择器
div {}
p {}
……
通用选择器
* {}
类选择器
.classname {}
群组选择器
p,div,stu {}
派生选择器/父子选择器
div h1 {}& && && & 表示div下面的h1的属性
#nav li {}
伪类选择器&&一般用于&a&标签
【css选择器系统详解】
1、div局限:负责划分大块区域,没有语义 div与h1 标签比较,&div&hello world&/div& 与&h1&hello world&/h1& 不同。
2、div仅仅划分区域,对文字颜色、粗细、大小、段落等没有任何控制效果。
3、对于搜索引擎,全用div不利于优化。&h1&hello world&/h1&,搜索引擎很很重视这些标题。
4、有一些效果,div是达不到的。
三个语义型的标签
&p&&/p&
&h1&&/h1&
&pre&&/pre&
&a href=&& title=&& target=&&&&/a&
&img src=&/img/baidu_sylogo1.gif& /&
嵌入媒体文件
&object type=&application/x-shockwave-flash& data=&88.swf& width=&400& height=&300&&
& && && && &&param name=&movie& value=&88.swf& /&
&/object&
&object classid=&clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6& width=&400& height=&300&&
& && && && &&param name=&autoStart& value=&false& /&
& && && && &&param name=&URL& value=&php.wmv& /&
& && && && &&embed autostart=&true& src=&php.wmv& type=&video/x-ms-wmv& width=&400& height=&300& controls=&ImageWindow& console=&cons&&
& && && && &&/embed&
&/object&
【无序有序列表标签】
无序列表
ul {
& & & & list-style:
}
& & & & & & & & &ul&
& & & & & & & & &li&梅花&/li&
& & & & & & & & &li&兰花&/li&
& & & & & & & & &li&兰花&/li&
& & & & & & & & &li&兰花&/li&
& & & & & & & & &li&兰花&/li&
& & & & & & & & &/ul&
有序列表
&ol&
&li&&/li&
……
&/ol&
list-style:none&&把有序列表前面图标设置为没有,方便浏览器兼容
【表格】
重要元素为行与列
table 表格
row 用tr td 表示 行
colum 列
& & &table&
& && &&&&tr&&td&行项目一&/td&&td&行项目二&/td&&td&行项目三&/td&&/tr&
& && &&&&tr&&td&行项目一&/td&&td&行项目二&/td&&td&行项目三&/td&&/tr&
& && &&&&tr&&td&行项目一&/td&&td&行项目二&/td&&td&行项目三&/td&&/tr&
& & &/table&
表格的列与行的合并
colspan=&3& 表示该行占用3列
rowspan=&3& 表示该列占用3行
表格的css控制边框样式
表格边框融合&&border-collapse:collapse /separate
& &&&边框间距 border-spacing:5& && & separate时候有效
空表格是否显示 empty-cells:show/hide& &边框融合后,则一直显示,是别人的边。即为collapse的熟悉值应该为separete
【内联元素】又叫行内元素。w3c称之为“行内框”,网友称之为“橡皮筋”
&span&&/span& 表示没有意义的内联元素。
【内联与块状的转换】
display:block(块状)inline(行内元素)none(该元素不显示)
displau:none; 等同于此代码被清除
内联元素下方空白问题:
一大段文字中N行,N&=2。最后一行与后面的块状元素有一个边距,这个是css无法控制的。
图片是内联元素
div p&&h pre form 块状元素
a span&&br&&都是内联元素
【背景】
background:color image
16进制代码代替颜色
image
background:img(url图片地址) no-repeat/repeat-x/repeat-y;
repeat属性:
滚动效果attachent:fixed(兼容性不好,少用)&&scorll(默认)
position 多个元素公用一个背景图,在大网站常见,节省服务器请求次数,把众多请求次数合并为1次
计算机里的坐标
& & & & 原点在左上角
& & & & x轴右为正
& & & & y轴下为正
position默认是把背景图的原点和元素的原点重合
用图片做背景最好用颜色作背景,防止图片丢失页面变化很大。
【伪类选择器】
鼠标放上去,就变化颜色等,即为伪类选择器。
伪类选择器是选择的是元素的某种状态
链接有四种状态设置:没被点击过& &被点击过& &鼠标放在链接上 鼠标点击瞬间
a:hover {}& & 鼠标放在链接上
a:visited {}& & 点击过了
a:link{}& && &&&没有点击&&或者不写。
a:active {}& &&&点击瞬间
顺序:l-v-h-a& &link visited hover active
【文本控制】
text-indent 文本缩进(首行)
text-align 对齐方式 center left right
text-decoration 文本下划线装饰线& &underline(下划线) overline line-through(删除线) blink(闪烁,少用)none 什么都没有
letter-spacing:10字符间距
word-spacing:10&&词间距,对中文无效。
text-transform:uppercase&&大小写转换&&uppercase lowercase小写 capitalize 首字母变为大写,其他不变
【字体控制】
font-style:normal正常字体(默认) italic斜体 oblique倾斜的字体
font-weight& & 字体粗细 normal bold粗体 lighter细 bolder
font-size 字体大小
line-height 行高
font-family 字体 simhei
color 字体颜色
font写成一行顺序:style weight size/line-
极为:font:italic bold 5px/5
【精讲字体】
font-family:
serif& && && & 无衬险字体& && &多用于新闻报纸大标题
sans-serif& &&&有衬线字体& && &多用于正文内容
monospace& && &等宽& &
*字体作用顺序:font-family:可以设置多种字体,从前往后显示,前面优先显示。& && && &
先英文字体 再安全字体
先特殊字体,再安全字体
先具体字体,再字体大类 :font-family:&微软雅黑&,&黑体&,
多个字体共用时候,请用引号包围起来。
等宽字体:
不等宽font-family:&Time New Ronan &,&Tahoma&
等宽&&font-family:;&courier& ,&corour new&;
【符号实体】转义字符&&表示方式格式:& &&+字符+分号
&& &&&&
&& &&&&
&& & &
&& &空格
&& &版权符号
【bug调试情况】
1、没有声明doctype
2、初始值不一样
3、自身书写不规范
4、浏览器解析bug
ie6双倍margin bug解决方法:图片属性设置& &img {_display:} 属性前面加下划线,则只有ie能识别
【表单】
&form method=&post&&
& && &&&请输入用户名:&input type=&text& name=&username& /&&br /&
& && &&&请输入E-mail:&input type=&text& name=&email& /&&br /&
& && &&&请输入密码:&input type=&text& name=&password& /&&br /&
& && &&&&input type=&submit& value=&提交& /&
&form method=&get& action=&a.html&&
method提交方式:post(不可见,适用于密码提交) get(可见)
action:表示接收表单信息的地址。
text password readio checkbox check textarea button submit file reset
select option
默认选中
chcek=checked
select=selected
复制代码php基础:echo&&;
【php的注释方式。】
//&&php单行注释。
php多行注释
*/
#php的shell风格单行注释
【php语句注意事项】
1、每行后面,必须加分号。虽然整个php最后一句例外,但是最后一句加分号最好。
2、对于纯php页面,php结束符“?&”允许不写。对于不直接运行,被别的页面包含的文件,推荐结尾不加“?&”,这样包含时候,运算速度快点。
【php变量】8种
js变量:整形 浮点型 布尔型 字符串 null undefind 数组 对象
php:整形 浮点型 布尔型 字符串 null 数组 对象 资源形
js中,声明变量:& &var
php中,声明变量:&&直接变量名 = 值;
php变量命名规范:
& & & & 变量名字由 字母、下划线、数字组合而成,且数字不能做开头
& & & & 变量前面都有一个“$”标记。
例如:
& & & & $age = 22;
& & & & $weight = 75.5;
引参与传参区别:
&?php
& & & & $age = 22;
& & & & $weight = 75.5;
& & & & echo $age,'&br /&',$
& & & & echo &&br /&&;
& & & & echo &我唉你&;
& & & & echo &&br /&&;
& & & & $nianling = &$& &//此处为传送参数,两个一个地址。两指针指代一个地方。
& & & & $nianling = 100;
& & & & echo $nianling,'&br /&',$
?&
&?php
& & & & $age = 22;
& & & & $weight = 75.5;
& & & & echo $age,'&br /&',$
& & & & echo &&br /&&;
& & & & echo &我唉你&;
& & & & echo &&br /&&;
& & & & $nianling = &$& &//此处为引用参数,两个两个地址。两指针指代各指一个地方。
& & & & $nianling = 100;
& & & & echo $nianling,'&br /&',$
?&
单双引号区别:双引号解析内部变量。单引号不解析内部变量。单引号解析速度快。
【转义字符】
对于单引号来说,前面加一个\& && && &\\ = \& & \' = '
对于双引号来说,可转义字符。 \\ \t \r \n \&
【常量】一旦声明,不能改变其值。
& & & & define('PI',3.14);
变量与常量区别:
& & & & 1、变量可重新赋值,常量不允许。
& & & & 2、变量可销毁,常量不允许。
& & & & 3、变量有作用域,函数内部访问不到,而常量一旦定义,全局或者函数内部,都有效。
& & & & 4、常量占用内存比较多。很难销毁。
对于经常引用,不允许修改,则用常量。
常量特点:
& & & & 1、命名规则,与变量相同。允许字母、数字、下划线,且数字不能开头。
& & & & 2、从习惯角度讲,一般常量用大写。
& & & & 3、最新版本,对常量名,已经区分大小写。变量始终区分大小写。
& & & & 4、【常量的值,允许整形 浮点型 布尔型 字符串 null。只能赋值单一型给常量。】复合型不允许。资源型赋值给常量会带来不确定的问题。
变量名特点:
& & & & 1、$$变量名,可以挨着解析。
echo constant($cons); //&&constant,表示把变量的值,作为场面的名字,引用常量。
& & & &
【php控制结构】
if else:
& & & & $num = 11;
& & & & if ($num & 10){
& & & & & & & & echo '11小于10';
& & & & } else {
& & & & & & & & echo '11不小于10';
& & & & }
& & & & $tod = 6;
& & & & if ($tod == 1){
& & & & & & & & echo '今天星期一';
& & & & }else if ($tod == 2){
& & & & & & & & echo '今天星期二';
& & & & }else if ($tod == 3){
& & & & & & & & echo '今天星期三';
& & & & }else if ($tod == 4){
& & & & & & & & echo '今天星期四';
& & & & }else if ($tod == 5){
& & & & & & & & echo '今天星期五';
& & & & }else if ($tod == 6){
& & & & & & & & echo '今天星期六';
& & & & }else if ($tod == 7){
& & & & & & & & echo '今天星期七';
& & & & }
【php读取get/post参数-超级全局数组】
读取get:& &$_GET[''];
读取post:&&$_POST['']
【php数组与js数组】
js数组创建:
& & & & var arr = new Array(1,2,3);
& & & & var arr = [1,2,3,4]
php数组创建:
& & & & $arr = array(1,2,3);
php打印数组:
& & & & print_r($arr);
php数组添加索引:$arr = array(11=&'我爱你',13=&'1990','name'=&'这里是名字');
& & & & 如果索引部分指定索引,其他单元没有指定索引,如果某单元没有取索引,则取改单元前面最大的索引值加1。
php引用数组单元值:
& & & & 1、如果是数字索引:echo $arr[10]
& & & & 2、如果是字符索引:echo $arr['name']& &//此处加了单引号。不加单引号,作为常量优先解释。
【关联数组与索引数组】
索引,可能是纯数组、字符串。如果是纯数字,则为索引数组,如果有字符,则是关联字符。
& & & &
【php与js之比较】
js:逻辑运算符,直接返回值。
php:;逻辑运算符,返回true、
php短路:
& & & & $a = 3;
& & & & $b = 2;
& & & & if (($a = 9)||($b = 1)) {& &//& &=为赋值运算,== 为判断。
& & & & & & & & $a +=1;
& & & & & & & & $b +=1;
& & & & }
& & & & echo $a,'&br /&',$b;
js与php区别:
& & & & 1、js中,可以多次连续声明不同函数;在一个php页面中,不能多次声明同名函数。
& & & & 2、js中,函数区分大小写;在php中,函数名不区分大小写,但是其变量常量名区分大小些。
& & & & 3、php中,调用函数时候,参数个数必须与声明函数时参数个数一致。
& & & & 4、php中,函数声明时候,某个参数可以有默认值。
& & & & & & & & function t($a,$b,$c=0);&&//c值默认值为0,但是呢,一旦c值声明,则改为声明值。
& & & &
【mysql数据库-基础10个命令】
连接数据库:mysql -h localhost -u root -p
显示数据库:
创建数据库:create database 数据库名& &create database php;& &//为文件夹名,也是数据库名
选中数据库:use 数据库名 ;& && &
查看数据库表:
删除数据库:dorp database 数据库名;& &//数据库名,不能修改。
创建一个数据库表:(稍微不规则做法)
create table class (&&//创建一个class表格;
name varchar(20),
area varchar(20)
create table class (&&//创建一个class表格;
id int primary key auto_increment,&&//primary key auto_increment 作为主键,并自动加一。&&stu int,
name varchar(20),
area varchar(20)
create table score (& &&&//创建一个score表格;
name varchar(20),
ke varchar(10),
修改数据库名字:rename table oldtable
查看表结构:
【mysql基础命名,增删改查】
插入数据库表内容:
& & & & insert into msg
& & & & (id,title,name,content)
& & & & values
& & & & (1,'初来乍到','张三','刚刚能不能当老大?');
修改数据库表内容:
& & & & update msg
& & & & set
& & & & id = 2,
& & & & content = '骗额我我',
& & & & where
& & & & name = '李四’;
删除数据表:delete from score where num = 3;
查数据表:
select num, = 3;&&//仅仅查看表中的num&&name 列
select * from score where num = 2;&&//查询num = 2 的行
select * from score where num & 2;
& & & && && && &//清空一张表的数据。
【php连接mysql服务器】
连接数据库:mysql_connect(地址,用户名,密码);& &//&&返回的是资源型的数据变量。
& & & & $host = 'localhost';
& & & & $user = 'root';
& & & & $pass = '000000d';
& & & & $conn = mysql_connect($host,$user,$pass);
& & & & //数据库查询:返回值为布尔值或者资源型。& &&&: mysql_query($sql,$conn);
& & & & $sql = 'use php';
& & & & $rs = mysql_query($sql,$conn);
& & & & var_dump($rs);
写入一条数据:
$sql = &insert into score (num,name,score,paiming)values(5,'杜洪浪',100,1);&;
& & & & echo mysql_error(); //打印失败的数据库信息。
【php读取mysql数据库数据】
需要用到 mysql_query();& &mysql_fetch_assoc();& &&&while循环
//while 循环,把所有的数据取出来,放到list中
$list = array();
while($row = mysql_fetch_assoc($rs)){
& & & & $list[] = $& && & //把$row 装到数组,并不指定索引
}
create table msg (
id int primary key auto_increment,
title varchar(100),
username varchar(20),
content varchar(1000)
);
【文件包含与代码重用】
include
require
都是把一个页面引入到当前页面。
include 与 require的区别:
& & & & 1、include 特点是一旦找不到引入页面,会报错,但是会继续执行。require一旦找不到文件则报错终止。
& & & & 2、include_once 与require_once:_once保证被包含的文件只引入一次。如果引入重复,则只执行一次。
include('17-include.php');
【函数封装】
【数组循环】
& & & & //有索引
& & & & $arr = array('中','华','民','国');
& & & & for($i = 0,$len = count($arr);$i&$$i++){
& & & & echo $arr[$i],'&br /&';
& & & & }
& & & & //无索引
& & & & $arr = array('z'=&'中','h'=&'华','l'=&'民','m'=&'族');
& & & & foreach($arr as $m){
& & & & echo $m,'&br /&';
& & & & }
& & & & $arr = array('z'=&'1','h'=&'2','l'=&'3','m'=&'4');
& & & & // 把上面数组每个元素单元乘以2
& & & & foreach($arr as $a=&$key){
& & & & $arr[$a] = $key * 2;
& & & & }
& & & & print_r($arr);
复制代码
站帮网帮助站长用正确方法快速建站,如需添加个性签名请到个人资料里面修改
阅读权限50
签到天数: 26 天该用户今日未签到
在线时间175 小时
php核心技术:【变量概念命名规范】
排骨价格--------黑板上&&(40.1)
变量名& && && &存储位置 变量值
变量名声明:
& & & & $变量名 = 变量值;
& & & & //& & & & 变量名区分大小写,有数字、字母、下划线组成,数组不开头
变量值:数值、字符串等
变量类型:
& & & & 浮点型:注意加减法不符合数学定则;
& & & & 布尔型:用echo打印的时候,真转为字符串1,假转为空;
& & & & 字符串:注意单引号与双引号区别
& & & & NULL&&:&&空,有一个变量表的变量,但是没有值空间。
//echo:输出整型、浮点型、字符串型;
//print_r() 输出对象、数组、二维或者多维结构;
//vardump&&打印数据和起类型;
【动态变量】
& & & & $str = 'airen';
& & & & $airen = 'zhangsan';
& & & & echo $$
【变量检测】
isset() 检测变量是否存在
& & & & $a = 11;
& & & & if(isset($a)){
& & & & & & & & echo '变量已经声明';
& & & & }else{
& & & & & & & & echo '变量未声明';
& & & & }
is_int(); 检测变量是非是int型&&
is_string(); 检测变量是非是string型
is_flate();
is_null();
is_bool();
echo gettype($str);//直接获取变量类型;
【变量销毁】
unset();& & //销毁变量
【php引用赋值与传值】
$a = $b&&意思是& &把$b的值读出来,然后把值替换$a的值。这个是一个引用传值的过程。
$a = &$b&&意思是& &把$b的地址的值直接复制到a,后果是$a $b 地址变成一个。是一个引用赋值的过程、
【常量】
某个重要的值,如果不给变量。容易被修改。
define('HZHU',8888);& &//定义常量hzhu&&为8888
特点:一旦定义,不能修改,不能重复定义,全局有效。
& & & & define('HZHU',8888);
& & & & $hzhu = 8846;
& & & & echo HZHU,'&br /&';
& & & & echo $hzhu,'&br /&';
& & & & t();
& & & & function t(){
& & & & & & & & echo HZHU,'&br /&';&&//可见常量全局有效,但是变量但函数中没有效果。
& & & & & & & & echo $hzhu,'&br /&';
& & & & }
变量值有8种类型,但是常量值只有:整型、布尔型、浮点型、字符串 null
常量的检测:
defined();&&返回值为true或者
& & & & if (defined('HZHU')){
& & & & & & & & echo 'HZHU常量已经定义';
& & & & }else {
& & & & & & & & echo 'HZHU常量没有定义';
& & & & }
常量名是否动态:
& & & & define('D','杜');
& & & & define('H','H');
& & & & define('L','L');
& & & & define('DHL','浪');
& & & & //变量值作为常量。以下是不可行的。
& & & & $a = 'D';
& & & & echo $a;
& & & & //需要用 constant(); 函数来实现。
& & & & $a = 'D';
& & & & echo constant($a);
【运算符】
-$a 取反 $a 的负值。
$a + $b 加法 $a 和 $b 的和。
$a - $b 减法 $a 和 $b 的差。
$a * $b 乘法 $a 和 $b 的积。
$a / $b 除法 $a 除以 $b 的商。
$a % $b 取模 $a 除以 $b 的余数。
例子& && && &名称& && && && && &&&结果
$a and $b& &And(逻辑与) TRUE,&&如果 $a 与 $b 都为 TRUE。
$a or $b& & Or(逻辑或) TRUE,& &如果 $a 或 $b 任一为 TRUE。
$a xor $b& &Xor(逻辑异或) TRUE,如果 $a 或 $b 任一为 TRUE,但不同时是。
! $a& && &&&Not(逻辑非) TRUE,&&如果 $a 不为 TRUE。
$a && $b& & And(逻辑与) TRUE,&&如果 $a 与 $b 都为 TRUE。
$a || $b& & Or(逻辑或) TRUE,& &如果 $a 或 $b 任一为 TRUE。
例子& && && &名称& && && && && && && && && && && && && & 结果
$a == $b& && &等于 TRUE,& && && &&&如果 $a 等于 $b。
$a === $b& &&&全等 TRUE,& && && &&&如果 $a 等于 $b,并且它们的类型也相同。(PHP 4 引进)
$a != $b& && &不等 TRUE,& && && &&&如果 $a 不等于 $b。
$a && $b& && &不等 TRUE,& && && &&&如果 $a 不等于 $b。
$a !== $b& &&&非全等 TRUE,& && && &如果 $a 不等于 $b,或者它们的类型不同。(PHP 4 引进)
$a & $b& && & 小与 TRUE,& && && &&&如果 $a 严格小于 $b。
$a & $b& && & 大于 TRUE,& && && &&&如果 $a 严格 $b。
$a &= $b& && &小于等于 TRUE,& && & 如果 $a 小于或者等于 $b。
$a &= $b& && & 大于等于 TRUE,& && &如果 $a 大于或者等于 $b。
字符串拼接:
$str = $str1.$str2.str3;& &//&&.表示字符串的拼接。
echo&&$str1.$str2.$str3;& &//&&表示先拼接,然后输出。如果用,逗号连接,则表示挨个输出。
【函数执行权】
echo '函数执行权';
//函数要调用才会执行,如果不调用,是不会执行的。
//进入到函数内部之后,函数得到执行权,
//函数执行权的交回,函数执行完毕的时候,函数执行权交回。或者函数遇到则函数立即交回执行权。
【函数返回值】
1、如果有&&则返回其后函数值。
2、如果没有return,则返回null;
3、如果只写return,没有值与函数,则返回null.
【函数传值与传参】
& & & & //函数传值
& & & & function t(&$num){& &//&&此处有&& &表示此处为传参,因此下面打印为24,否则为19;
& & & & & & & & $num +=5;
& & & & }
& & & & $age = 19;
& & & & t($age);
& & & & echo $age,'&br /&';
& & & & echo $& &// 报错原因是因为函数作用范围仅在函数内部;
【动态函数】
$func();& &&&// 表示加一个小括号。表示将$func的值,当作一个函数来调用。
& & & & &?php
& & & & //动态函数
& & & & function t1(){
& & & & & & & & return 't1&br /&';
& & & & }
& & & & function t2(){
& & & & & & & & return 't2&br /&';
& & & & }& & & &
& & & & function t3(){
& & & & & & & & return 't3&br /&';
& & & & }
& & & & $func = $_GET['func'];
& & & & echo $func,'&br /&';
& & & & $func();& &&&// 表示加一个小括号。表示将$func的值,当作一个函数来调用。
【超级全局变量】
9大超级全局变量& &--------& & 全部大写
& & & & & & & & $_GET& & //地址栏参数
& & & & & & & & $_POST& &//接受表单POST型参数,t主要是用户注册之类的
& & & & & & & & $_REQUEST&&// 包含了$_POST $GET $_COOKIE&&为其并集
& & & & & & & & $_FILES& && && &//文件上传
& & & & & & & & $_COOKIE& && &
& & & & & & & & $_SESSION& && & //用户登录
& & & & & & & & $_ENV
& & & & & & & & $_SERVER& && &//服务器与用户访问的一些信息
& & & & & & & & $GLOBALS& & //&&所有变量的一个注册表
& & & & &?php
& & & & $age = 5;
& & & & function t(){
& & & & & & & & global $& &&&// 变量前面加上global&&表示此变量为全局变量定义。
& & & & & & & & $age++;
& & & & }
& & & & echo '不调用函数',$age,'&br /&';
& & & & t();
& & & & echo '调用函数',$age,'&br /&';
【字符串】
echo &我爱你id\&你的画画\&&;& &//&&双引号,是不允许两个双引号的。如需双引号,则用转义字符\
转义字符:
& & & & 对于单引号来说,前面加一个\& && && &\\ = \& & \' = '
& & & & 对于双引号来说,可转义字符。 \\ \t \&& && &\r 回车符&&\n 换行符
php一大段字符表示:(heredoc的写法)
& & & & $str = &&&title& & 如果title加上单引号,则为nowdoc,文本内变量与转义字符都不能解析。解析与单引号一样规则。
& & & & & & & & 第一行
& & & & & & & & ierh
& & & & & & & & 大幅度释放
& & & & & & & & ;可、
& & & &
& & & & echo $
注意:&&1、标志符与变量命名一致;
& & & & 2、heredoc&&结束符为新起用一行,并且独占一行,前方没有任何字符。不能用空格
& & & & 3、对文本的属于规则与双引号一致,包括转义字符都能解析。
【字符串函数】一共分为9类
字符长度类别函数:
strlen($str1);&&//根据字节计算字符长度& &注意:如果是utf8.则一个汉语返回3个字节。gbk返回2个字节 英文都是返回1个字节。
& & & & $str = '中华名族';
& & & & echo strlen($str);
& & & & echo '&br /&';
& & & & echo mb_strlen($str,'utf-8');&&// 指定字符解析类型.并计算字符个数.
mb_strlen($str,'utf-8');&&// 指定字符解析类型.并计算字符个数.
函数位置:
strpos(参数一,参数二,offset); //表示返回字符位置.返回字节数,参数一是变量,参数二是需要查找额变量,如果参数二为整形,则按照ascii码查找. office是偏移量,必须大于前面一个找到的值才有效。
& & & & $str = 'goog hi this is lily,history';
& & & & echo strpos($str,'hi',7);
字符串替换:
//字符串函数替换
//str_replace();函数
& & & & $str = 'hi this is lily,history';
& & & & //我们需要把hi换为
& & & & $newstr = str_replace('hi','hello',$str,$num);& &第一个参数是被替换词,第二个是替换为新词。第三个参数是父词。第四个参数为可选参数,统计替换次数
& & & & echo $
& & & & //也可以用数组进行多次替换。
& & & & $search = array('hi','li');
& & & & $replace = array('hellio','ul');
& & & & echo '数组替换&br /&';
& & & & echo str_replace($search,$replace,$str);
& & & & //strtr();
& & & & $str = 'hi lily,,hello jim';
& & & & echo strtr($str,'hi','hello');&&//这种是单个字符替换,多余的和一样的部分忽略。此处h - & & & & h 忽略。i - e 替换。多余的部分忽略。&&//常用语全角字符转为半角字符。
字符串截取:
& & & & substr($str,3);
& & & & echo '截取字符串长度&br /&';
& & & & $str = 'abcdefg';
& & & & echo '&br /&从第三个字符段截取所有后面的&br /&';
& & & & echo substr($str,3);&&//从第三个字符段截取所有后面的
& & & &
& & & & echo '&br /&当值为负数时候,则从右边截取。&br /&';
& & & & echo substr($str,-3);
& & & & echo '&br /&截取开头三个字符&br /&';
& & & & echo substr($str,0,3);
字符串分割:
& & & & $str = 'abcdef';
& & & & $arr = str_split($str);&&//&&把字符串按照一个一个拆分为数组;(根据字节拆分)
& & & & $arr3 = str_split($str,3);//三个字节一组,拆分字符串为一个数组
字符串分割2:&&
& & & & // 根据指定符号拆分。explode(',',$str);表示根据逗号拆分。
& & & & $str&&= 'avs,中国,日本,狗狗';
& & & & $arr = explode(',',$str);
& & & & print_r($arr);
& & & & echo '&br /&';
& & & & $str = implode(',',$arr);&&//与explode相反,将指定的数组根据符号合并。
& & & & echo $
字符转义函数:
& & & & echo '字符转义函数&br /&';
& & & & $str = &a b 3 'd ' helo&;
& & & & echo $str,'&br /&';
& & & & //对于单引号,一旦涉及到mysql,会很容易造成别人对数据库的注入。
& & & & echo '转义后输出&br /&';
& & & & echo $str = addslashes($str);& &//子函数自动对字符转义,为了安全。
& & & & echo '&br /&转义回来后输出&br /&';
& & & &
& & & & echo stripslashes($str);
转实体符号,需要在浏览器显示大于号小于等符号:htmlspecialchars($str);
& & & & htmlspecialchars($str);
& & & & htmlspecialchars_decode($str);&&//反转实体。
//比较函数
& & & & $fan = strcmp('a','D');& &//比较ascill码值大小,如果返回值为 1&&或者 -1;
& & & & echo $
//大小写转换
& & & & $str = 'tHHHH sdjkfjsdJJJJJJHHHH';
& & & & echo strtolower($str);&&//转小写
& & & & echo '&br /&';
& & & & echo strtoupper($str);& &//转大写
& & & & echo '&br /&';
& & & & echo ucfirst($str);& &//转单词首字母大写,首字母变大写,其他字母不影响。
数组创建:
& & & & $arr = array('name' =&'zhangsan','num' =&'09022');
& & & & 或者:(便于运行中临时增加单元)
& & & & $arr['name'] = 'zhangsan';
& & & & $arr['num'] = '';
& & & & 或者:
数组循环:
& & & & foreach($arr as $danyuan =& $v){
& & & & & & & & echo $danyuan,'=&',$v,'&br /&';
& & & & }
【数组游标操作】
& & & & //数组游标操作
& & & & //当一个数组刚刚造好,此数组指针指向0.也就是第0个单元,
& & & & $arr = array('中','华','民','族');
& & & & echo current($arr),'&br /&';
& & & & echo current($arr),'&br /&';
& & & & echo current($arr),'&br /&';
& & & & echo current($arr),'&br /&';&&// 说明指针没有自动移动。
& & & & echo key($arr),'&br /&';
& & & & echo key($arr),'&br /&';
& & & & echo key($arr),'&br /&';
& & & & echo key($arr),'&br /&';& &//&&key函数是获取数组指针的键值,也不会自动移动。
& & & & // next()&&函数& &意思是把数组中的指针往尾部移动一个单元。
& & & & next($arr);
& & & & echo current($arr),'&br /&';
& & & & echo key($arr),'&br /&';
//指针从尾部移动:
//指针从尾部移动
& & & & $arr = array('中','华','民','族');
& & & & //函数:
& & & & /*
& & & & end(); 指针移动到尾部
& & & & prev();指针前移
& & & & */
& & & & end($arr);
& & & & echo current($arr),'&br /&';
& & & & echo key($arr),'&br /&';
& & & & prev($arr);
& & & & echo current($arr),'&br /&';
& & & & echo key($arr),'&br /&';
foreach();函数执行前,系统会自动初始化指针,但是结束后,系统却不会初始化指针。
each();&&//函数,返回是一个数组,表示当前指针值与键值,并顺手将指针往后移动一次。
【List与each函数一起用】
$arr = array('春','夏','秋','冬');
list($a,$b,$c,$d) = $& && && & //表示将数组$arr 每一个单元赋值给前面变量
【数组下标】
//数组下标
1、数组下标很容易影响程序执行效率。
2、对于“整型”的索引值,不必加单双引号。加了后反而影响效率。
3、“字符串”索引值下标,如不加引号,会自动优先解释为常量。常量值作为索引,如没有常量,则作为索引处理,但是效率很慢了哦。
4、字符串所以,优先单引号。
【数组函数】
count();
& & & & 1、参数可以是数组或者非数组。数组、对象返回其单元个数。
& & & & 2、如果参数是非数组,全部返回1。
& & & & 3、如果是null。则返回null。
& & & & 4、如果是二维数组,会返回第一层个数。
& & & & $arr = array('a','b','c',array('d','d'));
& & & & echo '&br /&';
& & & & echo count($arr,true);& &//此处后面加了true。代表递归的方式计算数组单元个数。数完第一层,然后数第二层。
array_key_exists('1',$arr);&&//判断数组是否有键值.
& & & & /isset() 对于数组中为 NULL 的值不会返回 TRUE,而 array_key_exists() 会。
& & & & //isset 判断是根据单元的值判断。而array_key_esists&&是根据键值判断。
交换键与值:
array_flip($arr);& &
& & & & //数组并没有变化。只是将键值替换后赋值给新的函数
array_push(array(),'');& &
& & & & 1.将单元压入数组。
& & & & 2、数组发生变化,多了一个单元。
& & & & 3.返回值为数组的单元个数,
array_push();
& & & & 1、作用是弹出最后的一个单元,也就是出栈
& & & & 2、返回值是弹出的这个单元的值。
& & & & 3、如果没有弹出,然会为null
array_shift();
& & & & 1、去掉数组第一个单元,
& & & & 2、返回值为去掉的单元的值。
& & & & 3、如果么有去掉,则返回为null
& & & & 4、会从新整理索引,如果是字符串索引,则不受影响、
array_unshift();
& & & & 1、作用是把一个单元增加到数组第一个,
& & & & 2、影响参数数组值。
& & & & 3、返回值为数组单元个数
& & & & 3、索引会从0开始从新排列。
//取出行。是一个关联数组
& & & & while($row = mysql_fetch_assoc($rs)){
& & & & & & & & print_r($row);
& & & &
//取出的是索引数组,发现全部索引从新 从0到往上& &设置了。
& & & & while($row = mysql_fetch_row($rs)){
& & & & & & & & print_r($row);
& & & &
// 这个是一个关联数组与索引数组的杂交品种
& & & & while($row = mysql_fetch_array($rs)){
& & & & & & & & print_r($row);
& & & &
& & & & }
& & & &
// 取出的是一个对象
& & & & while($row = mysql_fetch_object($rs)){
& & & & & & & & print_r($row);
& & & &
【mysql函数操作】
mysql_affected_rows($conn)
& & & & $sql = 'delete from msg where id ='.$
& & & & $rs = mysql_query($sql,$conn);
& & & & $rs1 = mysql_affected_rows($conn);&&//返回值为影响的行数。
mysql_num_rows($rs)
//mysql_close();
& & & & //释放mysql连接数。mysql连接数是有限的。因此完成数据增删改查后,应该及时关闭资源。
& & & & //&&一般在while循环前把连接关闭。
复制代码
站帮网帮助站长用正确方法快速建站,如需添加个性签名请到个人资料里面修改
阅读权限50
签到天数: 26 天该用户今日未签到
在线时间175 小时
mysql 全部基础【存储引擎及其特点】
engine myisam/innodb/bdb charset utf8/
【mysql常用语句】
建表语句
create table stu(
id int primary key auto_increment,
sname varchar(20) not null default '',
gender char(1) not null default '',
company varchar(20) not null default '',
salary decimal(6,2) not null default 0.00,
fanbu smallint not null default 0
)engine myisam charset utf8;
插入语句
insert into stu (
sname,gender,company,salary,fanbu)
values
('zhangsan','m','sanling','1900.00','200');
插入多行数据
insert into stu (
sname,gender,company,salary,fanbu)
values
('w2','m','sanling','1900.00','200'),
('w3','w','tongyong','1900.00','800'),
('w4','m','sanling','190.00','200'),
('w5','w','tongyong','100.00','800'),
('w6','w','sanling','190.00','800');
修改表
update stu
set fanbu = 123
where gender = 'w';
update stu
set fanbu = 700
where gender = 'w' and id = 7;
删除表
delete from stu where salary &200;
delete from stu where sname ='lisi';
数据库查询
select gender,fanbu from stu where id &3;
【mysql列类型】
目的:考虑mysql效率与存储需要的空间
数值型:整形 浮点型/定点型
& & & & 整形:tinyint smallint mediuint int bigint
& & & & & & & &&&
& & & & & & & & tinyint&&占用1个字节&&-128 到 127
& & & & & & & & smallint 占用2个字节&&-32768& &32767
& & & & & & & & mediuint 占用3个字节&&-8388608
& & & & & & & & int& && &占用4个字节&&-
& & & & & & & & bigint& &占用8个字节& &-75807
float与decimal&&浮点型与定点型。
& & & & float(M,D)&&decimal(M,D)& &其中M表示‘精度’整数部分。D表示小数标度。
& & & & float:有精度损失;decimal精度高。银行存款用整形或者decimal存储。
char varchar text blob 字符串型
& & & & char(4) 定长字符串 不够N长度,则用空格补齐。占用空间N定值。&&查找快,可能浪费空间,适合格式化的字符串
& & & & varvhar&&变长型字符串 长度N,最大存N,存储i长度字符,占用空间为i+(1到2个字节) 反之
& & & & & & & & 注意:varchar(M) 与 char(M)限制的是字符。不是字节。
& & & & text 不支持属性 文章字数比较多的适合
& & & & blob 二进制存储方式。
日期时间类型:
& & & & data型:存放日期时间
【建表语句】
create table member (
id int unsigned auto_increment primary key,
username char(20) not null default '',
gender char(1) not null default '',
weight tinyint unsigned not null default 0,
birth date not null default '',
salary decimal(8,2) not null default 0,
lastlogin int unsigned not null default 0
)engine myisam charset utf8;
【修改表语法】
增加列:
& & & & alter table 表名 add 列名称 列类型 列参数;
& & & & alter table 表面 add 列名称 列类型 列参数 after 列名;//把新列加在指定列后面。
& & & & alter table 表面 add 列名称 列类型 列参数& && &//把表列加在第一列。
删除列:
& & & & alter table 表名 drop 列名称;
修改列:
& & & & alter table modify 表名 新类型 新参数;
修改列名:
& & & & alter table 表名 change 列名 列新名 列新参数;
【mysql语句模型】
& & & & 列:看作变量
& & & & where:看作表达式,如表达式为真,则对应的行则是选中的行,可取出删除等操作
【查找语句】
& & & & select goods_id,goods_name,(market_price-shop_price) as price from ecs_goods where 1;
& & & & select goods_id,goods_name,substring(goods_name,3) from ecs_goods&&where
1;
& & & &&&update ecs_goods set goods_id =floor(goods_id/10)*10 where goods_id &=10 and
goods_id &=100;
【group与统计函数】
函数:max min sum avg count
& & & & select max(shop_price)from ecs_
group 分组查询
& & & & select sum(goods_number) from ecs_goods group by cat_
分组求平均:
& & & &&&select cat_id,avg(shop_price) from ecs_goods group by cat_
【having】
& & & & 与where查询语句差别是,能将查询的结果再次筛选一次。
& & & & select goods_id,goods_name,market_price,shop_price,(market_price-shop_pri
ce) as price from ecs_goods having price &=200;
& & & & select cat_id,sum(goods_number * shop_price) as money from ecs_goods grou
p by cat_id having money &=20000;
& & & & select name,avg(score),sum(score&60) as gua from result group by name hav
ing gua &=2;& &//挂科数量不小于2科的人的平均分。
【order by】
排序,将结果集最终出来后,对数据进行排序。
select goods_id,goods_name,shop_price from ecs_goods order by shop_
select goods_id,goods_name,shop_price from ecs_goods order by shop_price
& & & & 降序排列:order by shop_price desc& &升序排列:order by shop_
order by cat_id desc,shop_& &先用cat_id降序,然后desc升序排列
【限制取出的条目】
& & & &&&limit 5;& &限制5条
& & & & limit 2,5;& &偏移2条,限制取出5条
【子查询】
where子查询:
& & & & select goods_id,goods_name from ecs_goods where goods_id = (select max(go
ods_id) from ecs_goods);
& & & & select goods_id,goods_name from ecs_goods where goods_id in (select max(g
oods_id) from ecs_goods group by cat_id);
from子查询:
& & & & select * from (select goods_id,cat_id,goods_name from ecs_goods order by
cat_id asc,goods_id desc) as tmp group by cat_
exists 型子查询:
& & & & //&&把外层sql结果拿到内层sql去测试,如果内层sql成立,则该行取出。
& & & & 例如:查出某商城某数据表中有商品的栏目。
& & & &&&select cat_id,cat_name from cate where exists (select * from ecs_goods wh
ere ecs_goods.cat_id = cate.cat_id);
【null】
& & & & 我们是不希望一个值为:null;
& & & & 因此一般会建表加:not null default ''; 或者 not null default 0;
& & & & null只能用is null 或者&&is not null 比较,遇到其他值做运算一律是null, 且运算效率不高,因此建表时候则声明not null default ''或者0
【多表连接查询】
select goods_name,cat_name from ecs_goods,ecs_&&//此语句,查询结构是集合相乘原理
多表联查,必须保证两表有一样的列。
& & & & select ecs_goods.goods_name,ecs_category.cat_name from ecs_goods,ecs_cate
gory where ecs_goods.cat_id = ecs_category.cat_&&// 两表相乘,效率稍微低点。比如两表都有很大数据,内存中生成临时数据则十分大。
左连接的语法:A表 left join B表 on 条件。意思是on对应条件为真,则取出B表对应的行。这个可以看作一个表
& & & & select goods_name,cat_name,shop_price from ecs_goods left join ecs_catego
ry on ecs_goods.cat_id = ecs_category.cat_
& & & & select goods_name,cat_name,shop_price from ecs_goods left join ecs_catego
ry on ecs_goods.cat_id = ecs_category.cat_id where ecs_goods.cat_id = 3;
以此类推,3表左连接,多表左连接都是类似的
【左连接右连接内连接区别】
左右连接: 女 left join 男 on& &=& &男 right join 女 on&&//左右连接可互换
内连接:& &男 inner join 女 on&&
//其中男 女 分别代表两个表。
左右连接关系:&&内连接是 左右连接的交集。
& & & & & & & & 外连接是左右连接的并集
【union联合拼接查询】
& & & & A查询 union B查询。拼接a查询与b查询结果
& & & & select goods_name,shop_price from ecs_goods where shop_price &100 union s
elect goods_name,shop_price from ecs_goods where shop_price &4000;
& & & & //当两表联合查询,列名不一致时候,也能查询,但是最终列名与第一个查询结果为准
& & & & //只要结果中列数目一致即可使用,即可查询。
& & & & (select cat_id,goods_name,shop_price from ecs_goods where cat_id = 3 limi
t 3) union (select cat_id,goods_name,shop_price from ecs_goods where cat_id = 4
limit 1);& &//括号特点。内层排序在可能影响查询结果才会起作用。比如此次内层limit加括号与不加括号会影响结果的。
& & & & //如union查询前后结果重复,默认会去重复。如果不想去掉重复,则用union all 替换union
【mysql函数】
数学函数:
& & & & select 5-3;
& & & & select abs(3-5);//转绝对值
& & & & select hex(7);//转十六进制
& & & & select abs(3-5);//转二进制
& & & & select floor(3.3333);//舍去小数部分
select goods_name,floor(shop_price*0.88) from ecs_
& & & &&&md5('aaaa');&&//md5加密
控制流函数:
& & & & select sname,case xingbie when 1 then '男' when 2 then '女' when 0 then '
春哥'&&//case 列名 when 值 then 返回值……
& & & & select sname,if(xingbie = 2,'优先','等待') //相当于php三运算符
& & & & ifnull('aaa',0); 判断是否是null,如是则,如否则
系统调试函数:
& & & & select user();//返回用户及所在主机
& & & & select database(); //返回正在操作的库
& & & & select version();//返回数据库版本
【php函数与mysql函数选择】
1、mysql函数会影响mysql查询速度,所以建表时候就应当注意,减少mysql函数使用。
2、mysql里面的data_format,在phpdate函数可以实现,优先放php处理
3、mysql某列使用了函数判断,判断后将不会产生索引。
& & & & 总结:在where条件中,对某列使用函数,索引不发生变化。
创建视图方法:
create view 视图名字 as select……
& & & & //视图一旦创建完毕,则可以如表一样查询;
视图优点:
& & & & 1、简化操作
& & & & 2、精细权限控制
& & & & 3、分表时候可以用到。
视图特点:
& & & & 1、视图如没有学列,则无法修改,如有,则可以修改。视图一旦修改,则原来表数据也相应改变。其主要特点就是一对一。
& & & & 2、用了order by或者 limit 后,表与视图也不一一对应,主要是索引不对应了。比如100 100 100这个表,顺序已经打乱,100已经不清楚了,因此不一一对应。
【视图的algorithm】
merge&&// 不创建临时表的查询
temptable //创建临时表
【乱码问题】
ascii编码:为0到127之间。gb2312有2个字节。
于是,gb2312不占用0到127,GB到255之间组合。[129-255][129-255]。因此组合起来才1万多双字节。GB2312只能容纳6000多字。
gbk不局限于129到255,小于127也可以用。如[140 85 179 82],前面一个大于129.后边一个则按照汉字解析。【如前一个字符大于129,第二个字符是从80到FE与40到7E的并集。】
unicode 压缩后就是utf8编码,utf8用1到6个字节表示
【授权某一ip能远程连接mysql】
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
【字符集设置】
等价于:
set 复制代码
站帮网帮助站长用正确方法快速建站,如需添加个性签名请到个人资料里面修改
阅读权限50
签到天数: 26 天该用户今日未签到
在线时间175 小时
javascript基础javascript:解释执行的语言。
变量:变量名 变量值 变量类型 变量存储位置
var age=22;
var price=40.1;
javascript里,【数组、对象、函数】默认都是引用赋值,并不想php那样,不加“&”符号
【js变量名称要求】
1、只能用 【字母,下划线,数字,$符号】 组成,但是不能用数字开头。
2、变量名区分大小写。
3、变量命名,要有意义,不要用aaa之类的无意义词组。
document.write
& & var age=22;
& & document.write(age);
& & document.write(&&br /&&);
& && &&&var $='hello'
& & document.write($);
【五中基本类型变量】
整型 浮点型 字符串 布尔型 null(空壳,内存中有地址) undefined(空壳,内存中没有)
css引入:& && &
&style type=&text/css&&&/style&
&link rel=&stylesheet& href=&02.css& type=&text/css& /&
javascript引入:
&script type=&text/javascript&&&/script&
&script type=&text/javascript& src=&& /&
js可以写在页面head body 里面
【javascript】写注释
多行注释:
&script type=&text/javascript&&
&&
& & /*
& && &&&aulthor:lanya
& && &&&日期:
& && &&&作用:学习js注释
& & */
&/script&
行注释:
& & 我唉你的注释。 //*
【运算符】
算术运算符:
+ - * / %(求余数9%2=1)&&js可以对浮点型数求余,但是php只能对整形求余。
条件运算符:
& & if (3&2)
& & {alert('3果然比3大。');
& & }else{
& & alert('你傻糊涂了吧?');
& & }
全等于:=== 不仅数值想通,类型也必须相同。
条件元算符结果是布尔类型。
【js元算中,哪些为真?哪些为假?】
假的:false o null undefined
真的:不为0的数,字符 ……
js逻辑运算后,如为真,返回的值为子表达式的值。
php逻辑运算后,返回的值为布尔值。
赋值运算符:
把右侧值赋值给左侧。
a=a+1 可写为 a +=1
a=a*3 可写为 a *=3
a=a/4 可写为 a /=4
……
【age++ 与++age区别】
age++/--&&先把a的值 先读值,然后加减
++/--age&&先加减,然后读值。
【parseInt】
age=parseInt(age);&&把age字符串转变为数字整型;
【三元运算符】
age &= 18 ? 'iphone':'toy';
如果为真,则iphone,如果为假,则没有三元运算符,可用if…else… 来代替
【循环结构】
if() {}
if(){} else() {}
if(){}else() if {} else() {}……
【switch分支机构】
& & var today = 4;
& & switch (today)
& & {
& & case 1:
& & document.write('今天星期一');
& &
& & case 2:
& & document.write('今天星期二');
& &
& & case 3:
& & document.write('今天星期三');
& &
& & case 4:
& & document.write('今天星期四');
& &
& & case 5:
& & document.write('今天星期五');
& &
& & case 6:
& & document.write('今天星期六');
& &
& & case 7:
& & document.write('今天星期日');
& &
& & default:
& & document.write('美誉哦');
【while循环】
真,则循环;
假,则循环结束
& & while (true)
& & {document.write('真额呀。');
& & }
& & document.write('结束了呀。');
有可能只执行一次,有可能无限循环。
【do while循环】
& & do
& & {& && && & ……执行代码
& & }
& & while ();&&……判断,真则循环,假则脱离
至少执行一次。
【break continue】
break&&指代结束循环判断
continue 指代跳过本次循环判断,但是继续下一次循环。
【for循环】
/*
& & var money = 9;
& & for (money &=0; money-- )
& & {document.write('请客吃饭1元。&br /&');
& & }
*/
/*
& & var money = 9;
& & for (;money &=0; money-- )
& & {document.write('请客吃饭1元。&br /&');
& & }
*/
& & var money = 9;
& & for (;money &=0;)
& & {document.write('请客吃饭1元。&br /&');
& &&&money--
& & }
for循环的三个表达式都可以省略,但是省略全部后就是无限循环,需要break退出,相当于while
【函数】
1、函数自己不会运行,必须调用才会运行。
【js执行权与执行权交回】
1、js只能一个引擎同时运行,指令只能一条一条运行。单线程
2、funcation{
& & & && &//碰到return,函数值交回,返回,后面不继续执行。如没有return,则等语句运行完,交回。
}
3、js的函数就是一个变量。一下打印的是一个式子。
& & & && &&&function t() {
& && &&&return 5;
& & }
& & alert(t);
4、函数的作用域。函数先调用小部分,然后调用大部分。注意d与c的语句格式与位置变化后的函数变化。
& & & && &&&var a=3;
& & var b=4;
& & var c = 7;
& & function t() {
& && &&&d = 8; (var d =8; )& && & // 此处加var与不加var是不一样的哦。如不用var,则不是变量声明, 而是变量赋值.
& && &&&var a = 5;
& && &&&var c = 6;& &//有两个c变量的值,当m()变量寻值时候,先调用内部c=6.如内部没有值,则会调用全局c=7.
& && &&&alert(a + '--' + b);
& && &&&function m() {
& && && && &alert(c);
& && && && &alert(d);
& && &&&}
& && && &m();
& & }
& && &&&t();
& && &&&alert(a);
& && &&&alert(d);
5、js变量声明必须加var.不用var 后&&全局变量容易被污染。
【系统自带函数】
escape 与 unescape 把系统字符转为unicode字符,和反转码到。
& & var str='人民币';
& & var esc = escape(str);
& & var une = unescape(esc);
& & alert(esc);
& & alert(une);
parseInt 与 parseF整型与浮点型。
& & parseInt 把字符串的小数点后面部分分析为整型数字,然后直接取掉。如首字符不是数字,分析出此字符不是数字,返回为“NaN”。“NaN”代表非数字。
& & parseFloat 与上类似。
isNaN() 用于判断非数字;判断parseInt 与 parseF的值。
isFinite();判断是否无穷。判断一个数值是否优先。
eval();帮我们执行一段js代码;
& & var t = 3;
& & eval('t +=3');
& & alert(t);&&//t值为6;字符一样运行了。
【数组】
创建一个数组:
& & var arr = [];& &//这是一个空数组。
& & var stu = new Array();&&//创建一个空数组。
& & alert(arr.length);
& & alert(stu.length);
& & var arr = ['a','b','c','d'];&&//创建一个非空数组、
& & alert(arr);
& & alert(arr.length);
& & var aa = new Array(10);&&//创建1个数组。包含10个空的。
& & alert(aa);
& & alert(aa.length);
引用数组的值。
数组的赋值与读取:
& & var arr = ['a','b','c','d'];
& & alert(arr[3]);&&//数组的读取。
& & arr[3] = 'F';
& & alert(arr[3]);&&// 数组放赋值。
数组的好处:
& & var arr = ['a','b','c','d'];
& & alert(arr[3]);
& & arr[3] = 'F';
& & alert(arr[3]);
& & for (var i = 0;i&=3 ;i++ )
& & {document.write(arr[i] + '&br /&');
& & }
数组的长度变化:length 属性值变化。
1、数组长度若变小,则数组自动被截断。
2、若数组长度便长,数组则自动补上空值。
【对象】
创建对象,用大括号{}; 值前面还要加属性。& &
& & //创建一个对象。
& & var stu = {name:'xiaoming',age:22,number:'007',score:99};
& & document.write(stu);
& & document.write(stu['name']);& &//对象元素的读取& &不推荐
& & alert(stu.name);& && && && && &//标准读取对象方法。 推荐
遍历对象:数组可以用for循环,但是对象则不能,其属性无规律。必须用for in结构来遍历。
& & for (per in stu) {
& && &&&document.write(per + '&br /&');
& & }
& & for (per in stu) {
& && &&&document.write(stu[per] + '&br /&');&&//for in 结构中,利用循环得到的属性取值时候,不能用object.属性。
& & }
删除对象单元:& & delete stu.&&直接delete obj.属性;
【对象的方法】
& & var stu = {name:'zhangsan',age:22,talk:function(){alert('hello i am zhangsan');}};
& & document.write(stu.talk());//可知,js中,对象的元素的属性是可以为一个函数的。
js中,所有的变量都可以被js引擎包装为变量进行处理,如:
& & var str ='afdsfds';
& & alert(str.length);& &//str本来没有length,但是在调用瞬间,js会把他包装为对象。并对对象赋予了一些属性与方法。如:
& & & & 1、length 返回长度
& & & & 2、concat()& & alert(str.concat('我的家')); 连接字符
& & & & 3、indexOf 返回字符串位置& & alert(str.indexOf('人'));
& & & & 4、toLowCase()&&转小写
& & & & 5、toUpperCase()&&转大写
& & & & 6:日期时间对象、
& & & & & & & & var today = new Date();
& & & & & & & & & & alert(today);
& & & & & & & & & & alert(today.getFullYear());
& & & & & & & & & & alert(today.getDate());
& & & & & & & & & & document.write(today.getMonth() + '&br /&');
& & & & & & & & & & document.write(today.getHours() + '&br /&');
& & & & & & & & & & document.write(today.getMinutes() + '&br /&');
& & & & & & & & & & document.write(today.getSeconds() + '&br /&');
对于字符串、布尔型、数值类型、数组、null、以及Math
这些变量,虽然没有属性,但是在调用的一瞬间,js就给其包装了一些属性与方法。
对于日期、时间等,是通过new得到的属性与方法。
【DOM操作】
1、找到要修改、删除的节点。或者要先造出一个节点,然后把其插入某个节点。
【节点的查找】
1、document.getElementById:& && &&&通过查找id节点&&返回节点本身。
2、document.getElementsByTagName& &查找标签节点&&由于标签有N个,所以有“s”。返回数组。
3、document.getElementsByName& && & 通过 name 属性查找节点。
& & & & 早期浏览器认为:document.getElementByName();值针对表单发挥作用。后来,部分浏览器把name属性扩展到一般的元素,例如dic。但是IE没有真正变化,只能针对表单使用ByName.因此为了兼容性考虑,我们只能针对表单使用ByName。
【DOM中查找节点思路】
1、大原则是由大到小。个别情况是由子到父。
& & & & 由大到小:
& & & & & & & & 1、document.getElementById:& && &&&通过查找id节点&&返回节点本身。
& & & & & & & & 2、document.getElementsByTagName& &查找标签节点&&由于标签有N个,所以有“& & & & & & & & s”。返回数组。
& & & & & & & & 3、document.getElementsByName& && & 通过 name 属性查找节点。
& & & & 如果还没有得到需要的节点,则可以根据已经找到的节点再次定位。再次查找。
& & & & & & & & childNodes;& &可以找子节点,但是缺点是空格也会算入一个节点。W3C标准写法
& & & & & & & & children[];& &不会计入空白,主流浏览器支持。
【节点定位】
1、document.getElementById:& && &&&通过查找id节点&&返回节点本身。
2、document.getElementsByTagName& &查找标签节点&&由于标签有N个,所以有“s”。返回数组。
3、document.getElementsByName& && & 通过 name 属性查找节点。
然后根据父子,兄弟关系定位.
& & & & uls.parentNode
& & & & uls.style.background = &blue&;
【节点关系】
& & & & childNodes[]& &非w3c标准,但是支持主流浏览器。
& & & & parentNodes
& & & & firstChild
& & & & getElementByTagName('element_name')
& & & & lastChild
& & & & nextSibling
& & & & previousSibling
父子关系:
& & & & childNodes/children
& & & & node.parentNodes
下面四个属性容易被空白文本影响,建议少用。
& & & & fistChild lastChild
兄弟元素:
& & & & nextSibling previousSibling返回选定节点的上一个同级节点
对于元素对象,可以用&&元素.getElementByTagName();
【节点增加】
& && &&&var nodep = document.createElement('p');
& && &&&var cont = document.getElementById('container');
& && &&&cont.appendChild(nodep);
document.createElement& & 创建元素节点
document.createTextNode& &创建文本节点
给某元素插入一个子元素,并插入到其后。&&节点.appendChild(子元素);
& && &&&var zhong = document.createTextNode('中');
& && &&&var nodeli = document.createElement('li');
& && &&&nodeli.appendChild(zhong);
& && &&&var uln = document.getElementsByTagName('ul')[0];
& && &&&var xi = uln.children[2];
& && &&&uln.insertBefore(nodeli,xi);&&//其中nodeli节点,第一个参数,为插入节点。xi,第二个参数,为定位坐标。
& && &&&var newul = oldul.cloneNode(true);&&// 克隆节点.
【删除节点】
必须站在其父节点上面删除子节点.removeChild();
& && &&&var uln = document.getElementsByTagName('ul')[0];
& && &&&var zhong = uln.children[2];
& && &&&uln.removeChild(zhong);
【节点替换】
站在父节点的基础上。父节点.replaceChild(新节点.旧节点);
& & function t1() {
& && &&&var zhong = document.createTextNode('中');
& && &&&var nodeli = document.createElement('li');
& && &&&nodeli.appendChild(zhong);
& && &&&var uln = document.getElementsByTagName('ul')[0];
& && &&&var xi = uln.children[2];
& && &&&uln.replaceChild(nodeli,xi);&&
& & }&&
【节点复制clone】
& & function t1() {
& && &&&var oldt = document.getElementsByTagName('table')[0];
& && &&&var newt = oldt.cloneNode(true);& &//true,是一个重要参数,涉及到是否复制子元素的问题。
& && &&&var cart = document.getElementById('clonet');
& && &&&cart.appendChild(newt);
& & }
【直接插入html内容】
& & function t1() {
& && &&&var cont = document.getElementById('container');
& && &&&alert(cont.innerHTML);
& & }
& & function t2() {
& && &&&var cont1 = document.getElementById('container');
& && &&&var htmlcode = &我爱你,你真的没有了,&
& && &&&cont1.innerHTML =
& & }
& & function t3() {
& && &&&var cont3 = document.getElementById('container');
& && &&&cont3.innerHTML = &&img src = '/img/b68ea564b3facde9b5fd867f9d474ba.gif' /&&
& && &&&}
【修改节点属性】
& & function t1() {
& && &&&
& && &&&if (document.getElementsByName('email')[0].value == &&)
& && &&&{document.getElementsByName('email')[0].value = &请输入邮件地址&;
& && &&&}
& & }
【DOM事件】
& & & & 当页面上发生某一件事情,则激发某一函数。
1、元素被单机时& & onclick& &元素点击时候
2、元素失去焦点后&&onblur& &
3、表单被提交时候&&onsubmit
DOM时间如何声明?
1、直接在元素标签中声明。
&input type = &text& onclick = &fun()& /&
DOM事件:
& & & & 页面上的DOM变化。失去焦点 关闭页面
& & & & 鼠标上的DOM事件。&&onclick onmouseover&&onmouseout经过 点击&&双击 离开 移动
& & & & 键盘引起的事件。&&keypress onSbmit onChange onblur
onsubmit 函数特殊性&&在&form onsubmit = &return& ……&&&这个时候。函数的提交就会被阻拦。
【js操作css属性的问题】
& & & & 参考javascript的css属性对照表。
& & & & 1、 - 去掉,换成后字母大写
& & & & 2、有一个例外,控制元素类别的时候。不是用obj.class,而是用obj.className
【DOM对象与window对象】
document 对象是&&window对象 的子对象
window对象的子对象:
& & & & window.navigator& &表示浏览器相关信息&&浏览器名称 版本 操作系统信息 是否支持cooking等。
& & & & window.history
& & & & window.screen
& & & & window.document
& & //alert(window.navigator.appName); //浏览器属性
& & //alert(window.navigator.platform);&&//操作系统属性
& & alert(window.navigator.userAgent); //用户代理信息Mozilla/5.0 (Windows NT 6.2; WOW64; rv:17.0) Gecko/ Firefox/17.0
& & & & window.history&&go()&&back() forward()&&length
& &alert(&您的计算机的分辨率是& + window.screen.width + &*& + window.screen.height);
& & alert(window.location.href); //能识别地址。
& & window.location.href = &&;&&//能自动打开某页面。
【window对话框】
& & & & alert();
& & & & confirm();& &有取消或确认对话框
& && &&&prompt('请输入',&例如&);&&这个输入内容
【window定时器】
& & // window.setTimeout(“”,1000);& &一段时间后执行某一操作。1000毫秒。
& & function t1() {
& && &&&alert('时间到');
& && &&&window.location.href = &&;
& & }
& & window.setTimeout(&t1();&,1000);
window.setTimeout(&事件&,时间)& &//&&经过指定时间后,执行事件一次。
window.setIntava(&事件&,时间);& &// 每隔多少时间。执行一次。
clearInterval(window.setIntava(&事件&,时间);)& & // 清除定时器
clearInterval(window.setTimeout(&事件&,时间);)
【五子棋开发案例】
& && &&&this.style.background = &url(images/black.gif)&;&&//点谁谁改变背景、
& & function xia() {
& && &&&this.style.background = &url(images/black.gif)&;
& & }
& & function init() {
& && &&&var tds = document.getElementsByTagName('td');
& && &&&for (i = 0,len = document.getElementsByTagName('td'). i &i++ )
& && &&&{tds[i].onclick =
& && &&&}
& && &&&curr = curr =='black'?'white':'black';
站帮网帮助站长用正确方法快速建站,如需添加个性签名请到个人资料里面修改
阅读权限255
签到天数: <span style="color:#FF 天该用户今日未签到
推荐也看看
Discuz!模板插件定制和项目外包等技术支持 QQ:,有偿服务
& & 全心全意为站长提供简单易懂的快速建站教程
注册天数超过365天的论坛元老
拥有元宝超过8000的土豪大大
站帮网管理员
站帮网管理员
在站长互助版区帮助其他站长解决100次答疑
至尊站长勋章
拥有帮币超过10000的至尊站长
通过任务在聊吧发帖量达到1000帖的灌水达人们

我要回帖

更多关于 js判断div是否隐藏 的文章

 

随机推荐