请帮我改下javascript获取li下面的a
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请帮我改下javascript获取li下面的a相关的知识,希望对你有一定的参考价值。
我现在是获取了整个文档下面的a 标签,请帮改下只获取 li 标签下面的a,这样对其它标签就不会产生影响了.
<script>
window.onload=function ()
var aBtn=document.getElementsByTagName( 'a' );
var i = 0;
for(i=0; i<aBtn.length;i++)
aBtn[i].onclick = function()
for(i=0;i<aBtn.length;i++)
aBtn[i].className='border-right';
this.className='active';
</script>
你好!
代码粗糙,仅供参考:
<script type="text/javascript">function getElementChildren(ele, tagName)
if (!ele && !ele.nodeType && ele.nodeType !== 1)
alert('arguments error!');
return;
var a = [];
var children = ele.childNodes;
if (tagName) //判断一下是不是传了第二个参数
//alert("传入了参数");
if (typeof tagName != 'string') //判断第二个参数的类型是不是正确
alert('第二个参数类型不对!arguments[1] is error!');
return;
for (var i = 0; i < children.length; i++)
if (children.item(i).nodeType === 1 && children.item(i).tagName.toLowerCase() == tagName.toLowerCase())
a.push(children.item(i));
else //没有传第二个参数,则这样做(既不用考虑标记名)
for (var i = 0; i < children.length; i++)
if (children.item(i).nodeType === 1)
a.push(children.item(i))
return a; //最终返回的这个数值,就是ele的所有
window.onload=function ()
var _li = document.getElementsByTagName("li");
for(var x=0; x<_li.length; x++)
var aBtn= getElementChildren( _li[x], 'a' );
var i = 0;
for(i=0; i<aBtn.length;i++)
aBtn[i].onclick = function()
for(i=0;i<aBtn.length;i++)
aBtn[i].className='border-right';
this.className='active';
</script>追问
感谢,,,辛苦了,不过有些小问题,就是当选中之后再选择其它的,class 不能返回 border-right,还是保持着acvtive状态
追答你是要所有li下面只有一个<a>是active的么?
window.onload=function ()var _a = [];
var _li = document.getElementsByTagName("li");
//循环所有<li>
for(var x=0; x<_li.length; x++)
//得到<li>下所有<a>
var aBtn= getElementChildren( _li[x], 'a' );
//循环所有<a>
for(var i=0; i<aBtn.length;i++)
_a.push(aBtn[i]);
for(var y=0; y<_a.length; y++)
_a[y].onclick = function()
for(var j=0; j<_a.length;j++)
_a[j].className = 'border-right';
this.className='active';
参考技术A 用Jquery 这样写 var aBtn=$("li a");
或者 var aBtn=var aBtn=document.getElementsByTagName( 'a' );
var aBtn1=new Array();
for(var a in aBtn)
if(a.parentNode.nodeName!="li")
aBtn1.push(a);
参考技术B var li = document.getElementById(li的ID);
var a = li.getElementsByTagName("a"); 参考技术C 用jquery这样获取 $('li>a') 这就表示li下的啊 不明白的话可以留言 参考技术D JQUERY的
$("li>a") 只包含儿子级
$("li a") 包含所有子级
div四周都加阴影如何改下面的代码
border:#074A99 0px solid;
filter:progid:DXImageTransform.Microsoft.Shadow(color=#074A99,strength=4);/*ie*/
-moz-box-shadow: 6px 6px 20px #074A99;/*firefox*/
-webkit-box-shadow: 6px 6px 20px #074A99;/*safari或chrome*/
box-shadow:6px 6px 10px #074A99;/*opera或ie9*/
把这两个值都设置为 0 就是四边都有阴影
border:#074A99 0px solid;
filter:progid:DXImageTransform.Microsoft.Shadow(color=#074A99,strength=4);/*ie*/
-moz-box-shadow: 0 0 20px #074A99;/*firefox*/
-webkit-box-shadow: 0 0 20px #074A99;/*safari或chrome*/
box-shadow: 0 0 10px #074A99;/*opera或ie9*/ 参考技术A 0px 不能简写成0!
box-shadow:0px 10px 5px #000;
介绍
0px 阴影向右偏移量,为0
10px 阴影向下偏移量,为10px
5px 阴影的过渡距离,为5px
#000阴影颜色,为黑色
给你一个DEMO
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
#div1width:100px; height:100px; background:green; box-shadow:0 10px 5px #000
</style>
<body>
<div id="div1"></div>
以上是关于请帮我改下javascript获取li下面的a的主要内容,如果未能解决你的问题,请参考以下文章
C语言指针初学者 请帮我看看下面的提 为啥调用函数返回值是char型的 这样不就只能返回一个字符了吗