javascript随笔---小白求教

candy_soft 2018-02-04 09:56:11
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
div{
width: 200px;
height: 100px;
background-color: #ccc;
position: relative;
float: left;
margin: 10px;
}
div input{
/*text-align: center;*/
background-color: limegreen;
border: 1px solid #FF0000;
margin: 0px auto 0;
position: absolute;
bottom: 10px;
left:50%;
display: none;
}
</style>
</head>
<body>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<script type="text/javascript">
var oBtn = document.getElementById('btn');
var aDiv = document.getElementsByTagName('div');


for(var i=0;i<aDiv.length;i++)
{

aDiv[i].onmouseover = function()
{
aDiv[i].innerHTML = "<input type="button" name="btn" id="btn" value="Select" />";
oBtn.style.display = "block";
};
};

/*aDiv[i].onmouseover = function()
{
oBtn.style.display = "block";
}*/
</script>
</body>
</html>
...全文
830 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
candy_soft 2018-02-04
  • 打赏
  • 举报
回复
我将第二个问题才getElementsByTagName方法也能运行,不过代码执行太慢了
天际的海浪 2018-02-04
  • 打赏
  • 举报
回复
更正,循环变量用let 定义的。就没有第一个问题了。
天际的海浪 2018-02-04
  • 打赏
  • 举报
回复
引用 2 楼 candy_soft 的回复:
var aDiv = document.getElementsByTagName('div'); for(let i=0;i<aDiv.length;i++) { aDiv[i].onmouseover = function() { aDiv[i].innerHTML = "<input type='button' name='btn' id='btn' value='Select' />"; //alert(aDiv[i]); var oBtn = document.getElementById('btn'); oBtn.style.display = "block"; }; }; 这样你看行不行
你这样不行。有两个问题。 一, 事件执行时,for循环早就结束了,这个时候i已经是最大值加1了。 解决方法是可以用闭包把每次循环i的值保存起来。 或者在事件函数内不使用循环变量i,而是用this获取触发事件的元素 二, 同一页面中元素的id必须是唯一的,id不能重复,重复的id用document.getElementById()获取时,只能获取到第一个。
candy_soft 2018-02-04
  • 打赏
  • 举报
回复
var aDiv = document.getElementsByTagName('div'); for(let i=0;i<aDiv.length;i++) { aDiv[i].onmouseover = function() { aDiv[i].innerHTML = "<input type='button' name='btn' id='btn' value='Select' />"; //alert(aDiv[i]); var oBtn = document.getElementById('btn'); oBtn.style.display = "block"; }; }; 这样你看行不行
天际的海浪 2018-02-04
  • 打赏
  • 举报
回复
var aDiv = document.getElementsByTagName('div'); for(var i=0;i<aDiv.length;i++) { aDiv[i].onmouseover = function() { this.innerHTML = '<input type="button" name="btn" value="Select" />'; var oBtn = this.getElementsByTagName("input")[0]; oBtn.style.display = "block"; }; };

87,937

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧