求大神指教,如下代码我想将变量 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>
阿神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>
阿神2017-04-10 15:43:01
return arguments[0].style[arguments[1]]=arguments[2].style[arguments[1]];