hi

保持学习数量和质量

1、jQuery操作DOM元素

—-使用attr()方法控制元素的品质

attr()办法的效益是安装或者重回元素的特性,其中attr(属性名)格式是收获元素属性名的值,attr(属性名,属性值)格式则是设置元素属性名的值。

操纵就是赢得以及安装

<h3>attr()方法设置元素属性</h3>
<a href=”http://127.0.0.1” id=”a1″>点我就变</a>
<div>我改变后的地址是:<span
id=”tip”></span></div>

<script type=”text/javascript”>
$(“#a1”).attr(“href”,”www.imooc.com”);
var $url = $(“#a1”).attr(“href”);
$(“#tip”).html($url);
</script>

—-操作元素的情节

使用html()text()办法操作元素的始末,当七个方式的参数为空时,表示收获该因素的内容,而一旦艺术中富含参数,则代表将参数值设置为元素内容。

利用格局与attr()略有不相同,但成效基本相同

<h3>html()和text()方法设置元素内容</h3>
<div id=”html”></div>
<div id=”text”></div>

<script type=”text/javascript”>
var $content = “<b>唉,我又变胖了!</b>”;
$(“#html”).html($content);
$(“#text”).text($content);
</script>

—-操作元素的样式

通过addClass()css()艺术可以便宜地操作元素中的样式,前者括号中的参数为增日元素的体裁名称,后者直接将样式的属性内容写在括号中。

<body>
<h3>css()方法设置元素样式</h3>
<div id=”content”>我穿了一件藏蓝色外衣</div>

<script type=”text/javascript”>
$(“#content”).css({“background-color”:”red”,”color”:”#fff”}) ;
</script>
</body>

—-移除属性和体裁

使用removeAttr(name)removeClass(class)个别可以完成移除元素的特性和体裁的效果,前者方法中参数表示移除属性名,后者方法中参数则意味着移除的体制名

<body>
<h3>removeClass()方法移除元素样式</h3>
<div id=”content” class=”blue
white”>我脱下了一件黄色外衣</div>

<script type=”text/javascript”>
$(“#content”).removeClass(“blue white”);
</script>
</body>

—-使用append()方法向元素内增添内容

append(content)方法的听从是向指定的要素中追加内容,被追加的content参数,可以是字符、HTML元素标记,还足以是一个重返字符串内容的函数。

<body>
<h3>append()方法追加内容</h3>

<script type=”text/javascript”>
function rethtml() {
var $html = “<div id=’test’
title=’hi’>我是调用函数创制的</div>”
return $html;
}
$(“body”).append(rethtml());
</script>
</body>

—-使用appendTo()方法向被选元素内插入内容

appendTo()措施也可以向指定的要素内插入内容,它的使用格式是:

$(content).appendTo(selector)

参数content表示须求插入的始末,参数selector表示被选的元素,即把content内容插入selector元素内,默许是在底部。

<body>
<h3>appendTo()方法插入内容</h3>
<div>
<span class=”green”>小乌龟</span>
</div>

<script type=”text/javascript”>
var $html = “<span class=’red’>小青蛙</span>”
$($html).appendTo(“div”);
</script>
</body>

 注意那里的div若换为.red,效果会有两样,自行实验以及考虑吧。

—-使用before()和after()在要素前后插入内容

使用before()after()格局能够在要素的左右插入内容,它们分别表示在全体因素的前头和前面插入指定的要素或内容,调用格式分别为:

$(selector).before(content)$(selector).after(content)

其间参数content表示插入的始末,该内容可以是因素或HTML字符串。

 

<body>
<h3>after()方法在要素之后插入内容</h3>
<span class=”green”>大家交个朋友呢!</span>

<script type=”text/javascript”>
var $html = “<span class=’red’>兄弟。</span>”
$(“span”).after($html);
</script>
</body>

—-使用clone()方法复制元素

调用clone()方法能够生成一个被选元素的副本,即复制了一个被选元素,包罗它的节点、文本和品质,它的调用格式为:

$(selector).clone()

其中参数selector可以是一个因素或HTML内容。

 

<body>
<h3>使用clone()方法复制元素</h3>
<span class=”red” title=”hi”>我是孙行者</span>

<script type=”text/javascript”>
$(“body”).append($(“span”).clone());
</script>
</body>

—-替换内容

replaceWith()replaceAll()格局都足以用于替换元素或因素中的内容,但它们调用时,内容和被替换元素所在的岗位分化,分别为如下所示:

$(selector).replaceWith(content)$(content).replaceAll(selector)

参数selector为被沟通的元素,content为轮换的内容。

 

<body>
<h3>使用replaceAll()方法替换元素内容</h3>
<span class=”green” title=”hi”>我是屌丝</span>

<script type=”text/javascript”>
var $html = “<span class=’red’
title=’hi’>我是土豪</span>”;
$($html).replaceAll(“span”);
</script>
</body>

—-使用wrap()和wrapInner()方法包裹元素和情节

wrap()wrapInner()措施都得以展开元素的包装,但前者用于包裹元素本身,后者则用来包裹元素中的内容,它们的调用格式分别为:

$(selector).wrap(wrapper)$(selector).wrapInner(wrapper)

参数selector为被装进的因素,wrapper参数为包装元素的格式。比如<div></div>

<body>
<h3>使用wrapInner()方法包裹元素</h3>
<span class=”red” title=’hi’>我的肉体稍微歪</span>

<script type=”text/javascript”>
$(“.red”).wrapInner(“<i></i>”);
</script>
</body>

—-使用each()方法遍历元素

使用each()方式可以遍历指定的因素集合,在遍历时,通过回调函数再次来到遍历元素的队列号,它的调用格式为:

$(selector).each(function(index))

参数function为遍历时的回调函数,index为遍历元素的连串号,它从0开头。

<body>
<h3>使用each()方法遍历元素</h3>
<span class=”green”>香蕉</span>
<span class=”green”>桃子</span>
<span class=”green”>葡萄</span>
<span class=”green”>荔枝</span>

<script type=”text/javascript”>
$(“span”).each(function (index) {
if (index == 1) {
$(this).attr(“class”, “red”);
}
});
</script>
</body>

—-使用remove()和empty()方法删除元素

remove()主意删除所选元素本身和子元素,该方法可以经过丰硕过滤参数指定须要删除的一些因素,而empty()方法则只删除所选元素的子元素。

<body>
<h3>使用empty()方法删除元素</h3>
<span class=”green”>香蕉</span>
<span class=”green”>桃子</span>
<span class=”green”>葡萄</span>
<span class=”green”>荔枝</span>

<script type=”text/javascript”>
$(“span”).empty(“.green”);
</script>
</body>

 

2、MySQL

—–操作数据表中的记录—–

mysql> CREATE TABLE users(
-> id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
-> username VARCHAR(20) NOT NULL,
-> password VARCHAR(32) NOT NULL,
-> age SMALLINT NOT NULL DEFAULT 10,
-> sex BOOLEAN
-> );

—-插入记录INSERT

INSERT tbl_name [(col_name)] {VALUES|VALUE}…

若省略字段,则对拥有字段进行赋值操作。若此时想保持主键的递增,主键的VALUE写为NULL/DEFAULT即可。而且,省略字段时,必须且不得不对富有赋值,每一个字段都要赋值,若不匹配会报错

mysql> INSERT users VALUES(NULL,’Tom’,’123′,23,1);

赋值可以写值,也可以写函数,或者默许值。那里插入三个值为例。

mysql> INSERT users
VALUES(NULL,’Tom’,’123′,23,1),(NULL,’Rose’,md5(‘123’),DEFAULT,0);

mysql> SELECT * FROM users;
+—-+———-+———————————-+—–+——+
| id | username | password | age | sex |
+—-+———-+———————————-+—–+——+
| 1 | Tom | 123 | 23 | 1 |
| 2 | Tom | 123 | 23 | 1 |
| 3 | Rose | 202cb962ac59075b964b07152d234b70 | 10 | 0 |
+—-+———-+———————————-+—–+——+

—-其余插入记录的章程

–INSERT.. SET 

与INSERT差距的在于可以进行子查询(SubQuery);且每一次只好插入一条记下

INSERT tbl_name 

mysql> INSERT users SET username=’Ben’,password=’323′;

是因为其他字段有默许或者非空,所以那样写没错。

–INSERT…SELECT

—-更新(单表更新)UPDATE

类似INSERT…SET…的书写格局

mysql> UPDATE users SET age=age+5;

mysql> SELECT * FROM users;
+—-+———-+———————————-+—–+——+
| id | username | password | age | sex |
+—-+———-+———————————-+—–+——+
| 1 | Tom | 123 | 28 | 1 |
| 2 | Tom | 123 | 28 | 1 |
| 3 | Rose | 202cb962ac59075b964b07152d234b70 | 15 | 0 |
| 4 | Ben | 323 | 15 | NULL |
+—-+———-+———————————-+—–+——+

那儿翻新所有列。

若想翻新某些列,要用到标准

mysql> UPDATE users SET age=age+10 WHERE id%2=0;

此地的趣味是把偶数id的age加10的操作

—-删除记录(单表删除)DELETE

DELETE FROM tbl [WHERE …]

专注删除后再插入的id变化

mysql> DELETE FROM users WHERE id=2;
Query OK, 1 row affected (0.01 sec)

mysql> SELECT * FROM users;
+—-+———-+———————————-+—–+——+
| id | username | password | age | sex |
+—-+———-+———————————-+—–+——+
| 1 | Tom | 123 | 27 | 0 |
| 3 | Rose | 202cb962ac59075b964b07152d234b70 | 12 | 0 |
| 4 | Ben | 323 | 21 | 0 |
+—-+———-+———————————-+—–+——+
3 rows in set (0.00 sec)

mysql> INSERT users SET username=’Ben’,password=’323′;
Query OK, 1 row affected (0.01 sec)

mysql> SELECT * FROM users;
+—-+———-+———————————-+—–+——+
| id | username | password | age | sex |
+—-+———-+———————————-+—–+——+
| 1 | Tom | 123 | 27 | 0 |
| 3 | Rose | 202cb962ac59075b964b07152d234b70 | 12 | 0 |
| 4 | Ben | 323 | 21 | 0 |
| 5 | Ben | 323 | 10 | NULL |
+—-+———-+———————————-+—–+——+

id号是机动伸张,而不是智能的补给,请小心。

—-查询SELECT

对于数据库最多利用的说话。比如事先见过的SELECT * FROM users;

–查询表达式

每一个表达式表示想要的一列,必须有且至少有一个;

多少个列之间以,分隔

*表示所有列。tbl_name.*可以象征命名表的兼具列;

mysql> SELECT id,username FROM users;

也可以更改各类来显示

mysql> SELECT username,id FROM userS;
+———-+—-+
| username | id |
+———-+—-+
| Tom | 1 |
| Rose | 3 |
| Ben | 4 |
| Ben | 5 |
+———-+—-+

为了将来多表查询的造福,“全”查询那样写

mysql> SELECT users.id,users.username FROM users;

–赋予别名

mysql> SELECT id AS userid,username AS uname FROM users;
+——–+——-+
| userid | uname |
+——–+——-+
| 1 | Tom |
| 3 | Rose |
| 4 | Ben |
| 5 | Ben |
+——–+——-+

数据表中的名号其实远非变

—-WHERE条件

添加删减一般要加,不然就是对负有记录的操作;WHERE表明式中辅助函数或运算符

—-GROUP BY查询结果分组

ASC升序, DESC降序

mysql> SELECT sex FROM users GROUP BY sex;
+——+
| sex |
+——+
| NULL |
| 0 |
+——+
2 rows in set (0.01 sec)

mysql> SELECT sex FROM users GROUP BY age ASC;
+——+
| sex |
+——+
| NULL |
| 0 |
| 0 |
| 0 |
+——+

—-having分组条件

mysql> SELECT sex,age FROM users GROUP BY sex HAVING age>20;
+——+—–+
| sex | age |
+——+—–+
| 0 | 27 |
+——+—–+

留意having语句中的字段必须出现在select中,或者就索性是个聚合函数(max等)

—-查询结果开展排序ORDER BY

类似GROUP BY

mysql> SELECT * FROM users ORDER BY age,id DESC;

+—-+———-+———————————-+—–+——+
| id | username | password | age | sex |
+—-+———-+———————————-+—–+——+
| 5 | Ben | 323 | 10 | NULL |
| 3 | Rose | 202cb962ac59075b964b07152d234b70 | 12 | 0 |
| 4 | Ben | 323 | 21 | 0 |
| 1 | Tom | 123 | 27 | 0 |
+—-+———-+———————————-+—–+——+

注意那里排序的正经给了持续一个,则先根据age举行默许的升序,若遇上相同的,则再依照id对相同的进展降序排列

—-LIMIT限制重回数量

mysql> SELECT * FROM users LIMIT 2,2;
+—-+———-+———-+—–+——+
| id | username | password | age | sex |
+—-+———-+———-+—–+——+
| 4 | Ben | 323 | 21 | 0 |
| 5 | Ben | 323 | 10 | NULL |
+—-+———-+———-+—–+——+

急需留意的是若只写一个数字2,是说起来算起的四个;那里的2,2是指,从第三条先导回到两条,因为排列是默许从0开首的,所以这边是第三条早先。

别的,限制的依次与id没有提到

mysql> SELECT * FROM users ORDER BY id DESC LIMIT 2;
+—-+———-+———-+—–+——+
| id | username | password | age | sex |
+—-+———-+———-+—–+——+
| 5 | Ben | 323 | 10 | NULL |
| 4 | Ben | 323 | 21 | 0 |
+—-+———-+———-+—–+——+

—-学习了SELECT之后

mysql> INSERT test(username) SELECT username FROM users WHERE
age>=20;

mysql> SELECT * FROM test;
+—-+———-+
| id | username |
+—-+———-+
| 1 | Tom |
| 2 | Ben |
+—-+———-+

就可以定向的查找并写入

—-小结

记录操作:增更删查

INSERT,UPDATE,DELETE,SELECT

3、面向对象

 —–基本举办—–

—-类的定义

类可以看成是“一类人”,具有相同的“属性”和“方法”(但相呼应的值不肯定相同);

属性,是类的本来面目性质

方法,是类的“动作”

类的对象称为类的实例化——对象就是属于类的某一个个体,类的具体化

类的品质和办法是类成员

—-类的实例化

用现实的数目填满类的框架

<?php
/*
* 面对对象的学习记录用代码
*/
//定义类
class nbaPlayer{
public $name=”Jordan”;
public $height=”198cm”;
public $team=”Bull”;

public function __construct(){

}

public function run(){
echo “Running\n”;
}
}
//实例化
$jordan=new nbaPlayer();
//调用对象的特性和章程
echo $jordan->name.”\n”;
$jordan->run();

—-构造函数

__construct

默许调用,可以自定义来给出类的默许值

应用办法是在函数中写入变量,实例化的时候要给值

<?php
/*
* 面对对象的学习记录用代码
*/
//定义类
class nbaPlayer{
public $name;
public $height;
public $team;

public function __construct($name,$height,$team){
echo “constructing\n”;//判断是不是调用了构造函数
$this->name=$name; //在点子中用$this伪变量来传递参数
$this->height=$height;
$this->team=$team;
}

public function run(){
echo “Running\n”;
}
}
//实例化
$jordan=new nbaPlayer(“Jordan”,”198cm”,”Bull”);
//调用对象的特性和形式
echo $jordan->name.”\n”;

$jordan->run();

$james=new nbaPlayer(“James”, “197cm”, “Heat”);

瞩目那里会输出四次构造函数。也就是说,每四遍实例化都会调用几遍构造函数。

—-析构函数

__destruct()

写入析构函数后,

function __destruct(){
echo “destructing\n”;
}

结果如下

constructing Jordan Running constructing destructing destructing

也就是说,析构函数会在先后为止的时候自动调用

要么,把实例化的对象赋值为null时也会调用析构函数

一般用于清理使用的资源

—-对象引用

//对象的引用
$james1=$james;

$james2=&$james;

其中,有&的引用,多少个目的的生成是联名的,能够作为是一种印象。具体可以用地点提到的析构函数来一句话来表明。

 

 

 

相关文章

网站地图xml地图