钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱钱
2017-09-25 20:21
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<ul id="list">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
<p>class为on的p标签</p>
</body>
</html>
<script type="text/javascript">
window.onload=function(e){
var len1= getByClass("on","list");
alert(len1.length); // 结果等于2为正确
var len2= getByClass("on");
alert(len2.length); // 结果等于3为正确
}
function getByClass(clsName, parent){
//定义函数getByClass()实现获取document或指定父元素下所有class为on的元素
var oP = parent?document.getElementById(parent):document;
var oOn = oP.getElementsByTagName("*");
var on = [];
for (var i=0,len=oOn.length;i<len;i++){
if(oOn[i].className == clsName){
on.push(oOn);
}
}
return on;
}
</script>
是程序后台的原因,我把程序单独放在文件里执行就没有出现二次
你好,应该是 onload 的原因。
你这样的len2只是把body的class为on的子元素获取到了,所以len2.length=1; 我上面的len2是把所有为on的元素获取到了,所以我的len2.length=3; 但是我们俩这样提交都会弹出多下。
window.onload=function(){
var len1= getByClass("on","list");
console.log(len1.length); // 结果等于2为正确
var len2= getByClass("on");
console.log(len2.length); // 结果等于1为正确
}
function getByClass(clsName, parent){
//定义函数getByClass()实现获取document或指定父元素下所有class为on的元素
var oP = parent?document.getElementById(parent):document.body;
var len = oP.children.length;
var on = [];
for (var i = 0; i < len; i++){
if(oP.children[i].className === clsName){
on.push(oP.children[i]);
}
}
return on;
}不知道你想要的是不是这种结果。然后你获取的是元素,不是给元素绑定事件,和事件冒泡关系不大吧,我了解的事件冒泡就是应用在动态绑定事件的时候,不知道子元素个数或者子元素个数动态变化时在父元素绑定事件,利用事件冒泡来进行事件处理。
上面html里面的body 把class丢了,晕,这里补上
<body>
<ul id="list">
<li class="on">1</li>
<li class="select">2</li>
<li class="on">3</li>
<li>4</li>
</ul>
<p class="on">class为on的p标签</p>
</body>
-----------------------------
瀑布流布局
97745 学习 · 758 问题
相似问题