我知道 这个问题很菜...但是我还是想不到解决办法
一时手抖 就发上满是大牛的论坛了..求助了.
=============
目的
划过li 取 li里面<a>的innerHTML赋予obj 以便操作
相信大家都懂的=============
写了半天也写不出来..... 写出来的都不能用...
这句
var obj=document.getElementsByTagName('a')[0].innerHTML;
肯定错了的...Code
=============<html>
<body>
<script type="text/javascript">
window.onload = function(){
var elem = document.getElementsByTagName('li');
for(var i=0; i<elem.length; i++){elem[i].onmouseenter=function(){
this.style.background='#F3F3F3';
var HTML=this.innerHTML;
var obj=document.getElementsByTagName('a')[0].innerHTML;
this.innerHTML=HTML+"<br><a href='?E="+obj+"'>编辑</a> <a href='?D="+obj+"'>删除</a>";
}
elem[i].onmouseleave = function(){
this.style.background='';
var obj='';
this.innerHTML=HTML;
}
}}
</script>
<style>
body{background:#dfe1e3;font:12px;}
li{float:left;width:150px;height:70px;border:1px solid #000;margin:5px;padding:5px;LIST-STYLE-TYPE: none}
</style>
<li>
<a>ghost.img</a>
<br>720 K
<br><span>2007-10-2 10:17:30</span>
</li>
<li>
<a>memdisk.gz</a>
<br>9.79296875 K
<br><span>2007-1-6 0:23:38</span>
</li></ul>
</body></html>
一时手抖 就发上满是大牛的论坛了..求助了.
=============
目的
划过li 取 li里面<a>的innerHTML赋予obj 以便操作
相信大家都懂的=============
写了半天也写不出来..... 写出来的都不能用...
这句
var obj=document.getElementsByTagName('a')[0].innerHTML;
肯定错了的...Code
=============<html>
<body>
<script type="text/javascript">
window.onload = function(){
var elem = document.getElementsByTagName('li');
for(var i=0; i<elem.length; i++){elem[i].onmouseenter=function(){
this.style.background='#F3F3F3';
var HTML=this.innerHTML;
var obj=document.getElementsByTagName('a')[0].innerHTML;
this.innerHTML=HTML+"<br><a href='?E="+obj+"'>编辑</a> <a href='?D="+obj+"'>删除</a>";
}
elem[i].onmouseleave = function(){
this.style.background='';
var obj='';
this.innerHTML=HTML;
}
}}
</script>
<style>
body{background:#dfe1e3;font:12px;}
li{float:left;width:150px;height:70px;border:1px solid #000;margin:5px;padding:5px;LIST-STYLE-TYPE: none}
</style>
<li>
<a>ghost.img</a>
<br>720 K
<br><span>2007-10-2 10:17:30</span>
</li>
<li>
<a>memdisk.gz</a>
<br>9.79296875 K
<br><span>2007-1-6 0:23:38</span>
</li></ul>
</body></html>
解决方案 »
- Ext中使用iframe时,如何在子窗口中调用父窗口的全局变量?
- 发送的字符串安全性问题
- 计算字符串长度
- 50 分,帮忙看看这代码为什么把元素样式写在css中就出现JavaScript错误!
- 从WORD中粘贴一篇文章到 HTML在线编辑器中时候,编辑器如何知道文章是从WORD粘贴过来的??
- 大家帮我看看这个怎么解决,谢谢了。
- 请高手优化这段代码,代码的目的是将网页里一个大约500行的表格,返回给opener,我的代理花了几分钟,非常慢!
- 急~~~如何把表单提交到一个iframe????
- 一个关于JavaScript事件的问题?
- java 判断能被整除,且能如图下所示分割成单个字符
- 在function原型里加方法 会不会占内存
- 当鼠标移到或点击更多时,出现一个DIV,DIV里我想添加链接
<html>
<body>
<script type="text/javascript">
var a;
window.onload = function(){
var elem = document.getElementsByTagName('li');
for(var i=0; i<elem.length; i++){elem[i].onmouseenter=function(){
this.style.background='#F3F3F3';
a=this.innerHTML;
var obj=document.getElementsByTagName('a')[0].innerHTML;
this.innerHTML=a+"<br><a href='?E="+obj+"'>编辑</a> <a href='?D="+obj+"'>删除</a>";
}
elem[i].onmouseleave = function(){
this.style.background='';
var obj='';
this.innerHTML=a;
}
}}
</script>
<style>
body{background:#dfe1e3;font:12px;}
li{float:left;width:150px;height:70px;border:1px solid #000;margin:5px;padding:5px;LIST-STYLE-TYPE: none}
</style>
但是.划过第二个,这里
<a href='?E="+obj+"'>编辑</a> <a href='?D="+obj+"'>删除</a>连接还是连接到第一个的,即
?E=ghost.img我就是想决绝这个问题,..
关键是这句 我不会写.
var obj=document.getElementsByTagName('a')[0].innerHTML;
var HTML
window.onload = function(){
var elem = document.getElementsByTagName('li');
for(var i=0; i<elem.length; i++){elem[i].onmouseenter=function(){
this.style.background='#F3F3F3';
HTML=this.innerHTML;
var obj=this.getElementsByTagName('a')[0].innerHTML;
this.innerHTML=HTML+"<br><a href='?E="+obj+"'>编辑</a> <a href='?D="+obj+"'>删除</a>";
}
elem[i].onmouseleave = function(){
this.style.background='';
var obj='';
this.innerHTML=HTML;
}
}}
而mouseover和mouseout都有问题。
mouseover在范围内每移动一次都会触发
而mouseout在范围内的子元素或者父元素被移出时都会触发。很难控制以下代码在IE,Chrome,FF,Opera上测试通过,很好的解决了以上提到的所有问题。实现了真正意义上的全浏览器兼容
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style type="text/css">
body {
background:#dfe1e3;
font-size:12px;
}
li {
float:left;
width:150px;
height:70px;
border:1px solid #000;
margin:5px;
padding:5px;
list-style-type: none;
background-color: #dfe1e3;
}
</style>
<script type="text/javascript"> var isIE = /msie/i.test(navigator.userAgent) && !window.opera; window.onload = function() {
var tagLis = document.getElementsByTagName("li");
for (var index = 0; index < tagLis.length; index++) { (function(liTag) { var isInRange = false;
var linkContent = null;
liTag.onmouseover = function() { if (isInRange) {
return;
}
var aLink = liTag.getElementsByTagName("a")[0];
linkContent = aLink.innerHTML;
if (isIE) {
var brTag = document.createElement("br");
var aEdit = document.createElement("a");
aEdit.href = "#";
aEdit.innerHTML = "Edit";
aEdit.style.fontSize = "14px";
var aDel = document.createElement("a");
aDel.href = "#";
aDel.innerHTML = "Delete";
aDel.style.fontSize = "14px";
aLink.appendChild(brTag);
aLink.appendChild(aEdit);
aLink.appendChild(aDel);
} else {
aLink.innerHTML = (linkContent + "<br /><a href='#'>Edit</a> <a href='#'>Delete</a>");
}
isInRange = true;
}; liTag.onmouseout = function(e) {
doMouseOut(e, this, function() {
var aLink = liTag.getElementsByTagName("a")[0];
aLink.innerHTML = linkContent;
isInRange = false;
linkContent = null;
});
};
})(tagLis[index]);
}
}; function doMouseOut(e, father, fn) {
var event = e || window.event;
var parent = isIE ? event.toElement : event.relatedTarget;
while ( parent && parent !== father ) {
parent = parent.parentNode;
}
if ( parent !== father ) {
fn(event);
}
}
</script>
</head>
<body>
<ul>
<li>
<a>ghost.img</a>
<br>720 K
<br><span>2007-10-2 10:17:30</span>
</li>
<li>
<a>memdisk.gz</a>
<br>9.79296875 K
<br><span>2007-1-6 0:23:38</span>
</li>
</ul>
</body>
</html>
<html>
<body>
<script type="text/javascript">
window.onload = function(){
var elem = document.getElementsByTagName('li');
for(var i=0; i<elem.length; i++){ elem[i].onmouseenter=function(){
this.style.background='#F3F3F3';
this.HTMLstr=this.innerHTML;
var obj=this.getElementsByTagName('a')[0].innerHTML;
this.innerHTML=this.HTMLstr+"<br><a href='?E="+obj+"'>编辑</a> <a href='?D="+obj+"'>删除</a>";
}
elem[i].onmouseleave = function(){
this.style.background='';
var obj='';
this.innerHTML=this.HTMLstr;
}
}
}
</script>
<style>
body{background:#dfe1e3;font:12px;}
li{float:left;width:150px;height:70px;border:1px solid #000;margin:5px;padding:5px;LIST-STYLE-TYPE: none}
</style>
<li>
<a>ghost.img</a>
<br>720 K
<br><span>2007-10-2 10:17:30</span>
</li>
<li>
<a>memdisk.gz</a>
<br>9.79296875 K
<br><span>2007-1-6 0:23:38</span>
</li></ul>
</body>
</html>
代码很好,全兼容,还有那个出现多个编辑删除的BUG也没有了.
其他的.原来this可以这样用的,学习