问题:script放在head标签中为什么就不行了?
如果用obj.className=classname;的方法设置样式,怎么取消样式呢?
发现的问题:用getElementsByClassName()以及getElementsByTagName的方法获取对象进行样式设置为什么不行?
答:getElementsByClassName()的方法获取得到的是数组,试了getElementsByClassName("")[0]可以。
不知道你的应用场景,如果放在body最下可执行,放在head中不能执行,那么在head的时候要放在window.onload函数来执行你的操作。
可以利用obj.className.replace(classname,' ');
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>DOM改变样式以及隐藏和显示</title>
<style type="text/css">
.content{
width:500px;
height:500px;
border:1px dotted black;
}
p{
text-indent:2em;
}
input[type="button"]{
display:inline-block;
margin-right:14px;
}
</style>
<script type="text/javascript">
var mydiv = null;
window.onload = function(){
mydiv =document.getElementById("text");
}
//定义"改变颜色"的函数
function changeColor(){
mydiv.style.backgroundColor="red";
}
//定义"改变宽高"的函数
function changeSize(){
mydiv.style.width="200px";
mydiv.style.height="300px";
}
//定义"隐藏内容"的函数
function hidetext(){
mydiv.style.display="none";
}
//定义"显示内容"的函数
function showtext(){
mydiv.style.display="block";
}
//定义"取消设置"的函数
function resettext(){
var mychose = confirm("确定取消样式?");
if(mychose==true){
mydiv.removeAttribute("style");
}
}
</script>
</head>
<body>
<h2>JavaScript课程</H2>
<div id="text">
<h5>JavaScript为网页添加动态效果并实现与用户交互的功能。</h5>
<p>1. JavaScript入门篇,让不懂JS的你,快速了解JS。</p>
<p>2. JavaScript进阶篇,让你掌握JS的基础语法、函数、数组、事件、内置对象、BOM浏览器、DOM操作。</p>
<p>3. 学完以上两门基础课后,在深入学习JavaScript的变量作用域、事件、对象、运动、cookie、正则表达式、ajax等课程。</p>
</div>
<form>
<!--当点击相应按钮,执行相应操作,为按钮添加相应事件-->
<input type="button" value="改变颜色" onclick="changeColor()">
<input type="button" value="改变宽高" onclick="changeSize()">
<input type="button" value="隐藏内容" onclick="hidetext()">
<input type="button" value="显示内容" onclick="showtext()">
<input type="button" value="取消设置" onclick="resettext()">
</form>
</body>
</html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>DOM改变样式以及隐藏和显示</title> <style type="text/css"> .content{ width:500px; height:500px; border:1px dotted black; } p{ text-indent:2em; } input[type="button"]{ display:inline-block; margin-right:14px; } </style> <script type="text/javascript"> var mydiv =document.getElementById("text") //定义"改变颜色"的函数 function changeColor(){ mydiv.style.backgroundColor="red"; } //定义"改变宽高"的函数 function changeSize(){ mydiv.style.width="200px"; mydiv.style.height="300px"; } //定义"隐藏内容"的函数 function hidetext(){ mydiv.style.display="none"; } //定义"显示内容"的函数 function showtext(){ mydiv.style.display="block"; } //定义"取消设置"的函数 function resettext(){ var mychose = confirm("确定取消样式?"); if(mychose==true){ mydiv.removeAttribute("style"); } </script> </head> <body> <h2>JavaScript课程</H2> <div class="content" id="text"> <h5>JavaScript为网页添加动态效果并实现与用户交互的功能。</h5> <p>1. JavaScript入门篇,让不懂JS的你,快速了解JS。</p> <p>2. JavaScript进阶篇,让你掌握JS的基础语法、函数、数组、事件、内置对象、BOM浏览器、DOM操作。</p> <p>3. 学完以上两门基础课后,在深入学习JavaScript的变量作用域、事件、对象、运动、cookie、正则表达式、ajax等课程。</p> </div> <form> <!--当点击相应按钮,执行相应操作,为按钮添加相应事件--> <input type="button" value="改变颜色" onclick="changeColor()"> <input type="button" value="改变宽高" onclick="changeSize()"> <input type="button" value="隐藏内容" onclick="hidetext()"> <input type="button" value="显示内容" onclick="showtext()"> <input type="button" value="取消设置" onclick="resettext()"> </form> </body> </html>
可能是script中的代码有错误
可以用obj.removeAttribute("class","相应的类名");
getElement后面不加s的是获得单个对象可以直接调用相关的方法,加s的是获取的对象数组要用索引来调用相应的方法