我知道 这个问题很菜...但是我还是想不到解决办法
一时手抖  就发上满是大牛的论坛了..求助了.
=============
目的
划过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>

解决方案 »

  1.   

    你好,应该定义全局变量,另外尽量不要使用关键字。
    <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>
      

  2.   

    我知道.
    但是.划过第二个,这里
    <a href='?E="+obj+"'>编辑</a> <a href='?D="+obj+"'>删除</a>连接还是连接到第一个的,即
    ?E=ghost.img我就是想决绝这个问题,..
    关键是这句 我不会写.
    var obj=document.getElementsByTagName('a')[0].innerHTML;
      

  3.   

    var obj=document.getElementsByTagName('a')[0].innerHTML;改成var obj=this.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;
    }
    }}
      

  4.   

    mouseenter和mouselease除了ie外都不支持。
    而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>
      

  5.   

    你的问题,如果深究起来的话,就得写成我这个样子,挺复杂的。另外你#2要解决的问题只需要.href = "#";这个地方改成你的url就行了。a标签中的内容保存在linkContent里。
      

  6.   

    var obj=document.getElementsByTagName('a')[0].innerHTML;改成var obj=this.getElementsByTagName('a')[0].innerHTML;
      

  7.   


    <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>
      

  8.   

    其他的都被说了,兄弟只有建议你,去看看JQuery了
      

  9.   

    rainsilence太有爱了 谢谢帮我重构了代码..
    代码很好,全兼容,还有那个出现多个编辑删除的BUG也没有了.
    其他的.原来this可以这样用的,学习