- 浏览: 48035 次
- 性别:
- 来自: 武汉
最新评论
-
换个号韩国红果果:
<a src='ff'></a>
有关浏览器窗口宽度高度几个值的解析 -
LynBazinga:
学习了~谢谢
按对象属性排序
文章列表
var a=document.getElementsByClassName('textinput');
var b=[];
for(var m=0;m<a.length;m++){
if(a[m].getAttribute('placeholder')!=null)
b.push(a[m])
}
var l=1;
function makeComment(){
console.log(l);
b[l-1].click() ;//单击每一个comments ...
纯粹为了好玩!!
逻辑很简单
1 打开浏览器console;输入以下代码。
先上添加赞的代码
var tools={};
//添加所有赞
function init(){
document.body.scrollTop=10000;
setTimeout(function(){document.body.scrollTop=0;},2000);//加载更多并且等待
// alert('please wait for a minute . maybe 10 seconds');
}
function addSupport (){ ...
稍微想了一下,然后解决了很多bug,最后终于把它实现了。其实原理很简单。在每改变一个小球的x y坐标后,遍历整个在dom树中的其他小球,看一下它们与当前小球的距离是否小于球半径的两倍?若小于说明下一次绘制该小球( ...
数组元素(虽然下面获得的不是一个数组,只是一个集合,但是也成利)是对象时,当销毁这个对象,则数组自动把它从数组中去掉,同时数组长度减为1,不同于delete ,delete一个数组元素,则这个数组元素所在的位依然在,数组长度不变。
举个列子,当body中有很多个span元素时,现在把这些元素从dom树中删除。
var spanlist=document.getElementsByTagName('span');
//假如下面的删除代码段写成这样的形式:for(var i=0;i<spanlist.length;i++){ document.body.removeChild(sp ...
1 元素的 offsetWidth 包括border padding content 整体的宽度。
clientWidth 只包括内容区 padding 不包括border。
clientLeft = offsetWidth -clientWidth 即这个元素border的值
offsetLeft 若无已定位的包裹元素,则它相对于html元素定位。(跟其他元素比如body有无margin无关)如果有已定位的包含元素,假设这个包含元素还有border 那么它(自己也有border)的定位是从包含元素的边框内侧到本元素的边框外侧,注意,它是包含包含元素的padding与本元素的marg ...
利用JavaScript进行对象排序,根据用户的年龄排序展示
<script>
var bob={
name;bob,
age:30
}
var peter={
name;peter,
age:30
}
var amy={
name;amy,
age:24
}
var mike={
name;mike,
age:29
}
var john={
name;john,
age:45
}
<script>
1.现在实现按年龄排序。
function sortByProp(objArr,prop){//obj是一个对象数组,pro ...
动画 指一种样式变为另一种样式 keyframes应当始终定义0 100 过程
1 transition 制作鼠标滑过图片时的放大效果
css
.wrap{
width: 340px;height: 340px;
position: absolute;
top: 30%;
left: 20%;
overflow: hidden;
border: 1px solid;
}
img{
t ...
只需要在调用该对象合适(比如下列的setStyles)的方法后让该方法返回该对象(通过this 因为一旦一个函数称为一个对象方法的话那么在这个方法内部this(结合下面的setStyles)指向这个对象)
function create(type){
var element=document.createElement(type);
//this=element;
element.setStyles=function(key,prop){
this.setAttribute(key,prop);
return this;//this指向elem ...
任何一个函数都可以被当做构造函数使用!并且new了之后一定是返回一个对象,这个对象有两种可能,第一种,return中返回的不是一个对象(包括数组,因为它也是一个对象,不包括函数,因为函数也是一种对象)(不是一个对象指返回一个变量值之类的)或者没有返回(实际上返回undefined 也不是一个对象),那么这样的话返回的就是未被初始化的this对象,return后面的返回值被自动忽略。第二种,若返回一个对象a的话则new处理的this被屏蔽掉并且返回该对象a 。这些跟构造函数里面有无this无关,有this只是对this对象进行初始化,当然返不返回只看return后面的值。
var g=new f ...
先创建结构体
struct student {
int data;
//int tag;//标记这是第几个
struct student *next;
};
// addone 用于将一个数插入已从小到大排好序的链中
struct student *addone(struct student *h,int x){
if(h==NULL) //??????
printf("this is NULL");
int tag=0;//假设还没添加进入链
struct student *p=h,*temp=NULL,*temp1=N ...
知道了快排的算法之后,就泄露一个程序(js)
代码如下
function searchDeep(arr){
var j=arr.length-1;
var i=1,exchange=0;
var len=arr.length;
var temp=a[0],temp1;
var b=[len];
var tag=0;
for(var i=0; i<len; i++)//init mark array b b[i]=0 说明该位未确定 ;b[i]=1说明该位已确定
b[i]=0;
function loop(i,j){
do{
whi ...
一般程序运行时,如果遇见调用函数,则会进入它,直到从里面返回才继续执行下一条代码。故有
// 计时函数 call 待计时的函数;para 待计时的函数的参数
var timer={}
timer.count=function(call,para){
var t=new Date().getTime();
var re= call(para);
var t1=new Date().getTime();
var count=t1-t;
console.log('你的程序运行一共用了'+k+'ms');
if(typeof re)
return re;
}
...
delete删除属性时只是解除了属性与对象的绑定,故当属性值为一个对象时,删除时会造成内存泄露 (其实还未删除)
举例:
var person={name:{firstname:'bob'}}
var p=person.name
delete person.name
p.firstname -->'bob'
// 依然可以访问p.firstname,存在内存泄露!!
解决方法,用递归!!
//为何不刚开始就将deleteprop设为递归函数??因为它只有一个值,而若它是对象则内层属性可能存在多个,递归的条件是1. 子问题须与原始问题为同样的事,且更为简单:2. ...
数组从0开始!!
var a=[],i=0;
for(var j=0;j<30;j++){
a[j]=[];//数组里套数组,且第i层存储在第a[i]中
}
function walkDOM(n){
do{
if(n.nodeType!==3)//筛选去除#text类型
a[i].push(n);
//console.log(n);
if(n.hasChildNodes()){
i++;
walkDOM(n.firstChild)
}
if(!n.nextElement ...
html
<s class="one"><i></i></s>
css
.one{
width: 0px;height: 0px;display: block;border: 10px solid;border-color: transparent transparent #666 transparent;position: absolute;left: 180px;top: 30px;
}
.one i{width: 0px;
height: 0px;
display: block;
borde ...