获取节点元素的方法

本文介绍如何使用JavaScript获取HTML页面中元素及其样式的多种方法,包括getElementById, getElementsByTagName等,并展示了如何获取行内及非行内样式的具体实现。

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>获取元素及对应样式</title>
</head>
<style>
.yellowColor{
background-color: yellow;
}

.firstLine{
background-color: red;
color: green;
font-size: 30px;

#styleTest {
color: #0f2f91;
position: relative;
left: 500px;
font-size: 20px;
}
</style>
<body>
<ul id="nameUL" name="myUl">
<li name="li" class="item1"></li>
<li name="li" class="item" id="liSi">李四</li>
<li name="li" class="item">王五</li>
<li name="li" class="item">孙六</li>
<li name="li" class="item">田七</li>
</ul>

<div id="styleTest" style="font-size: 30px;">
我是用来测试如何获取元素样式的
</div>
<script>
/*getElementById getElementById的主语只能是document,不能是其他元素节点*/
console.log("--------getElementById----------");
var nameUL = document.getElementById("nameUL");
console.log(nameUL);
/*getElementByName getElementByName的主语只能是document,不能是其他元素节点*/
console.log("--------getElementsByName----------");
var lis = document.getElementsByName("li");
console.log(lis);
/*getElementsByTagName getElementsByTagName的主语既可以是document,也可以是其他的元素节点*/
console.log("--------getElementsByTagName----------");
var lis = document.getElementsByTagName("li");
console.log(lis);
var nameUL = document.getElementById("nameUL");
var lis = nameUL.getElementsByTagName("li");
console.log(lis);
/*getElementByClassName getElementByClassName的主语既可以是document,也可以是其他的元素节点*/
console.log("---------getElementByClassName---------");
var listItems = document.getElementsByClassName("item");
console.log(listItems);
var listItems = document.getElementById("nameUL");
var item = listItems.getElementsByClassName("item");
console.log(item);

/*querySelector 即使有多个满足条件的元素 只会取第一个*/
console.log("---------querySelector---------");
var first = document.querySelector("#nameUL li:last-child");
//first.style.backgroundColor = "yellow";/!*优先级比className定义的高*!/
//first.className = "firstLine";

/* querySelectorAll 返回所有满足条件的元素集合*/
console.log("---------querySelectorAll---------");
var all = document.querySelectorAll("#nameUL li");
var color = ["red","yellow","blue","green","orange"];
for(var i = 0;i<all.length;i++){
all[i].style.backgroundColor = color[i];
}


console.log("------------获取行内样式的值---------------");
/*通过.style方法,获取或者设置的样式都是行内样式。获取行间元素的的方法*/
var left = document.getElementById("styleTest");
console.log(left.style.fontSize);//30px
console.log(left.style.left);//没有

console.log("------------获取非行内样式的值---------------");
/*获取非行间样式对应元素的样式 IE用对应元素.currentStyle 其他浏览器为window.getComputedStyle*/
var myDiv = document.getElementById("styleTest");
var style = window.getComputedStyle(myDiv,null);
console.log(style.left);
console.log(style.color);
console.log(style.position);
console.log(style.fontSize);

/*针对不同的浏览器采用不同的方法*/
if(myDiv.currentStyle){ /*用于区分是什么类型的浏览器 IE*/
var style = myDiv.currentStyle;
console.log(style.left);
}else{ /*用于其他类型的浏览器*/
var style = window.getComputedStyle(myDiv,null);
console.log(style.left);
}
</script>
</body>
</html>

转载于:https://www.cnblogs.com/chencuixin/p/6140863.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值