2012-09-05 40 views
0

我有一个具有参数本身的功能,它是工作的罚款返回在JavaScript

的JavaScript //

<script type="text/javascript"> 
function $(id){ 
    document.getElementById(id).style.color="#ff0000" 
} 
</script> 

HTML //

<a href="#" onclick="$('me')">click me</a> 
<div id="me">color</div> 

现在我改变这个功能有点这是行不通的 javascript //

<script type="text/javascript"> 
function $(id){ 

    document.getElementById(id) 
} 

function aaa(){ 

    $('me').style.color="#ff0000" 

} 
</script> 

HTML //

<a href="#" onclick="aaa()">click me</a> 
<div id="me">color</div> 

为什么这个功能没有return语句

<script type="text/javascript"> 
function $(id){ 

    alert(id) 
} 

function aaa(){ 

    $('me') 

} 
</script> 
+0

你的函数第二次没有返回任何东西;使用return语句。 – Vishal

+0

但是,为什么我的更新问题没有返回声明 – Carlos

+0

因为在更新的问题中,实际事件发生在函数体内部,您没有使用任何回报以供进一步使用! – Vishal

回答

1

您的function $(id)不返回任何内容。它应该返回您正在查找的元素:

<script type="text/javascript"> 

function $(id){ 
    return document.getElementById(id); 
} 

function aaa(){  
    $('me').style.color="#ff0000"; 
} 
</script> 

PS。您应该不要命名您的功能$

+0

但为什么这个功能会起作用。 <脚本类型= “文本/ JavaScript的”> 功能$(ID){ 警报(ID) } 功能AAA(){ $( '我') } – Carlos

+0

@amit因为第一功能不返回任何东西,第二个函数不会对第一个函数的结果做任何事情。但在你的情况下,你试图访问从第一个函数返回的对象。但是,如果它不返回任何你只是“未定义”。 – Strelok

1
function $(id) { 
    return document.getElementById(id) 
} 
1

你没有在$函数返回任何东西,对于aaa让你不得不元素工作退货

function $(id){ 
    return document.getElementById(id); 
}