js如何获取某id的子标签? 65

比如获取<divid=father><aclass="style1"href="#"></a></div>里的class属性并修改?document.getElement... 比如获取<div id=father><a class="style1" href="#"></a></div>
里的class属性并修改?

document.getElementById('father').getElementsByTagName('a').className='style2'这样好像不对吧

强调:是想要获取子标签的方法。不要告诉我直接给a标签里付个id
展开
 我来答
固若老唐
2018-11-07 · 原神攻略、整活、抽卡、娱乐博主
固若老唐
采纳数:31 获赞数:16458

向TA提问 私信TA
展开全部

1、var a = document.getElementById("test").getElementsByTagName("div");

代码的test的父标签id的值,div为标签的名字。getElementsByTagName是一个方法。返回的是一个数组。在访问的时候要按数组的形式访问。

2、var b =document.getElementById("test").childNodes;

使用childNodes获取子节点的时候,childNodes返回的是子节点的集合,是一个数组的格式。他会把换行和空格也当成是节点信息。

扩展资料:

js获取父节点的方式:

1、parentNode获取父节点

获取的是当前元素的直接父元素。parentNode是w3c的标准。

var p  = document.getElementById("test").parentNode

2、parentElement获取父节点

parentElement和parentNode一样,只是parentElement是ie的标准。

var p1 = document.getElementById("test").parentElement;

3、offsetParent获取所有父节点

一看offset我们就知道是偏移量 其实这个是于位置有关的上下级 ,直接能够获取到所有父亲节点, 这个对应的值是body下的所有节点信息。

var p2 = document.getElementById("test").offsetParent;

learneroner
高粉答主

2015-08-11 · 关注我不会让你失望
知道大有可为答主
回答量:1.1万
采纳率:91%
帮助的人:6566万
展开全部

思路:根据id获取父对象,然后使用childNodes获取所有子对象数组,关键代码:

document.getElementById(div_id).childNodes;   // 子对象数组

实例演示:点击按钮将为id为test的div标签的所有子标签添加red类,即字体显示为红色

1、HTML结构

<div id = "test">
<a href="#">我是超链接</a>
<input type="text" value="我是文本框">
<div>我是子div</div>
</div>
<input type='button' value='设置子元素样式' onclick="fun()"/>

2、css样式

.red{color:red !important;}

3、javascript代码

function fun(){
objs = document.getElementById("test").childNodes;
for(k in objs)
objs[k].className = "red";
}

4、前后对比效果如下

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kevin_zcwen
2009-07-16 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:116
采纳率:0%
帮助的人:114万
展开全部
document.getElementById('father').getElementsByTagName('a')
你这样取到的是一个数组啊,数组没有className属性啊,是这个数组中的<a>标签的属性,取哪个数组元素就直接连[n]就可以了
另外问一下:楼上的考虑到这个<div id="father">下还有别的标签了吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hjxbat
2009-07-12 · TA获得超过159个赞
知道答主
回答量:24
采纳率:0%
帮助的人:24.7万
展开全部
document.getElementById("father").childNodes[0].className

这个语句就可以获取到class了,得到的就是“style1”,修改这个属性也是可以的。

希望能帮助到你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
taimingqing
2012-08-15 · TA获得超过141个赞
知道答主
回答量:284
采纳率:0%
帮助的人:88万
展开全部
教你个JQuery的,简单实用$("#father a").addClass("style2");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式