search

Home  >  Q&A  >  body text

javascript - 关于JS将获取到的样式附值给另外一个DIV的问题,求大神帮助;

求大神指教,如下代码我想将变量 width2获取到的 "op3"里面的行间样式的宽度,附值给op1;按我这的这种写法alert弹出来的是obj而不是获取到的1000px这个数值;求大神给指教应该怎么写才行呀。按我的思路是,将op3里面行间样式的宽度获取到然后由下面op1在调用附值的时候直接调变量 width2就可以了呀。但我现在写的不得行。谢谢哈。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>
        <script>
        function css(){
            if(arguments.length===2){
                return arguments[0].style[arguments[1]];
            }
            else{
                return arguments[0].style[arguments[1]]=arguments[2];
            }
        }
        window.onload = function(){
            var op1=document.getElementById('odi1');
            var width2=document.getElementById('op3');
                css(width2,'width');
            alert(css(op1, 'width'));
            alert(css(op1, 'width', width2));
        }
        </script>
    </head>
    <body>
     <p id="odi1" style="width:100px;height: 40px;background-color: #089376;line-height: 40px;text-align: center;color: #fff;">这是文字</p><br/>
     <p id="op3" style="width:1000px;height: 40px;background-color: #089376;line-height: 40px;text-align: center;color: #fff;">这是文字</p>
    </body>
</html>
PHP中文网PHP中文网2829 days ago573

reply all(3)I'll reply

  • 阿神

    阿神2017-04-10 15:43:01

    先分析你的问题:这句 return arguments[0].style[arguments[1]] = arguments[2]; 返回的是arguments[2],即 var width2=document.getElementById('op3'); ,alert 的内容自然就是[object HTMLpElement]。
    这是我的答案:return arguments[0].style[arguments[1]] = css(arguments[2], "width");
    完整代码如下:
    <html>

    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>
        <script>
        function css(){
            if(arguments.length===2){
                return arguments[0].style[arguments[1]];
            }
            else{
                return arguments[0].style[arguments[1]] = css(arguments[2], "width");
            }
        }
        window.onload = function(){
            var op1=document.getElementById('odi1');
            var width2=document.getElementById('op3');
            alert(css(width2,'width'));
            alert(css(op1, 'width'));
            alert(css(op1, 'width', width2));
        }
        </script>
    </head>
    <body>
     <p id="odi1" style="width:100px;height: 40px;background-color: #089376;line-height: 40px;text-align: center;color: #fff;">这是文字</p><br/>
     <p id="op3" style="width:1000px;height: 40px;background-color: #089376;line-height: 40px;text-align: center;color: #fff;">这是文字</p>
    </body>

    </html>

    reply
    0
  • 阿神

    阿神2017-04-10 15:43:01

    return arguments[0].style[arguments[1]]=arguments[2].style[arguments[1]];

    reply
    0
  • 天蓬老师

    天蓬老师2017-04-10 15:43:01

    else 语句中.arguments[2]是一个DOM对象,复制给style这的问题.. 而且给style赋值不是这样的,你再查查手册?

    reply
    0
  • Cancelreply