因为要支持跨浏览器,getElementsByClassName 在低版本IE浏览器中不被支持
是因为这个DOM没有查找呀
eles.push() 里面的内容把引号去掉,你往字符串里push东西当然没有用了
自己搞出来了,大概原因就是需要html先全部加载出来最后才可以取这个元素,把index.html的script标签放在html中的最后就可以了。。
首先封装这个getByClass方法是为了替换getElementsByClassName(),最后的目的本来就是获取指定className下的元素标签,使用父级的getElementsByTagName()获取所有子标签,通过判断子标签的ClassName属性是否符合要求,将符合要求的子标签放进eles[]内,输出数组
function getByClass(class,patent)//parent打错了
push 是数组的一个方法,意思是将element[i]元素添加到数组eles中;
on+keydown keyup keypress 键盘事件
键盘事件要写在document上
keyCode为按下的键的编号,为10进制数。
把JavaScript代码放到body后面,加载完html元素,JavaScript才能读取到DOM元素,从上到下编译,CSS代码要放在body前,先渲染
这里返回的是对象,
parent ? document.getElementById(parent) : document
这是个三目运算表达式,?前面parent的值是否为真,是真的就执行:前面的式子也就是document.getElementById(parent),返回一个id是parent的对象,如果parent的值为假,就执行:后面的式子,这里是返回document对象;
因为你只给出了一行语句,我不清楚parent具体是什么,也许是个变量,里面有个字符串,这样也可以解释当parent值为真的时候执行document.getElementById(parent)。
如果父元素没有id属性,添加一个不就有了
这种情况很多,你没有代码只能靠猜,比如用getElementsByTagName,没有给getElementById绑定父类id
我觉行
好吧 css无法实现 得用js
视屏右下角有源码下载的
可以的。只不过DOM0级事件处理程序不能多次处理同类事件,而DOM2级可以。
我知道了,是return eles;应该在for循环外面。
TagName是获取元素下所有的标签名的,再根据id匹配标签中的类
补充:对于那个id的元素是有class的,为啥不把class名加在 loginStateShow.className上!!!
这里的style.left是CSS里面的position的left,top也一样,你的CSS里面没有right,你给他值是没用的。
for(var i=0 l=elements.length;i<l;i++){
if(elements[i].className==clsName){
eles.push(elements[i]);
}
}
return eles;
}
var i=0 加 , 分隔开,你原代码在调试一下
视频的右下角,有“资料下载”下面的“源码”右面的“下载”就可以下载了啊!
表示我而已遇到了
这个地方,parent 是一个变量,里面存储了另外的字符串,如果给 parent 加引号,写成 "parent" ,则代表字符串 parent ,而非变量 parent,加引号和不加引号所代表的含义是截然不同的。
str.replace(/(^\s*)|(\s*$)/g,"")
parent?document.getElementById(parent):document
这句话的意思是,如果 parent 有值,即有 id 作为参数传入,则调用 document.getElementById(parent) 方法获取该 id 对应的对象;如果 parent 为空,没有传入 id,那么 oParent 则默认取值 document,即当前整个页面对象。
因为你用的是span,是行内标签,所以宽度和高度不是像块元素那样是固定的,是根据内容大小改变的,也就是说,你设置的宽度对span不起作用,高度也是,行内元素和块元素是不一样的,给span设置高度和宽度没有意义