为什么我无法从具有其他功能的函数中检索返回值?

时间:2017-10-01 21:36:51

标签: javascript html

为什么要赢得这项工作?

Var" i"工作正常,可以看到返回值,只是当我尝试发送var" i"就像我吼叫一样。

发送给deor_viewer函数的按钮:

<div onclick="deor_viewer('deor','films_deor_ip_full_','1','.jpg')"></div>

功能:

function deor_viewer(folder,name,id,ext) {

    var x;
    x = 'url(assets/images/films/'+ folder + '/' + name  + id + ext;

    document.getElementById("deor_ip_viewer_id").style.backgroundImage = x; 

    var i = id;
    return i;                                                                                                               

};

HTML按钮调用此函数:

function viewer_right() {
    var test = deor_viewer();
    alert(test);
}

alert刚出现&#34;未定义&#34;

它会正常工作,而不是returnvar

一起发送的时候

3 个答案:

答案 0 :(得分:3)

这是因为deor_viewer函数需要4个参数,其中一个是id,您稍后将其分配给i并返回它。

但是当你调用该函数(代码中的 )时,你没有传递任何参数,所以idundefined,这就是你得到的。 / p>

function deor_viewer(folder,name,id,ext) {

    var x;
    x = 'url(assets/images/films/'+ folder + '/' + name  + id + ext;

    document.getElementById("deor_ip_viewer_id").style.backgroundImage = x; 

    var i = id;
    return i;                                                                                                               

};
<div onclick="alert(deor_viewer('deor','films_deor_ip_full_','1','.jpg'))">click me</div>

<hr/>

<div id="deor_ip_viewer_id">element with id=deor_ip_viewer_id</div>

答案 1 :(得分:1)

您正在调用不带参数的deor_viewer函数,因此id参数将为undefined,并且您将其分配给变量i并返回该变量。 / p>

答案 2 :(得分:1)

看起来你的函数deor_Viewer工作得很好,当你打电话给你的其他函数时它会中断,因为你没有把任何东西传递给任何一个函数。如果你期望和任何时候调用函数,你必须传递值。在函数中引用这些值。

这就是您需要使用参数

进行更新
// like this:
function viewer_right(folder,name,id,ext) {
    var test = deor_viewer(folder,name,id,ext);
    alert(test);
}

// then call it the same way
<div onclick="viewer_right('deor','films_deor_ip_full_','1','.jpg')">DIV</div>

所以你最终得到了这个,你通过viewer_right传递了agruments并进入deor_viewer

    function deor_viewer(folder,name,id,ext) {

        var x;
        x = 'url(assets/images/films/'+ folder + '/' + name  + id + ext;

//document.getElementById("deor_ip_viewer_id").style.backgroundImage = x; 

        //var i = id;
        console.log('id', id);
        return id;                                                                                                               

    };
    
    // like this:
    function viewer_right(folder,name,id,ext) {
        var test = deor_viewer(folder,name,id,ext);
        alert(test);
    }

    // then call it the same way
    
<div onclick="deor_viewer('deor','films_deor_ip_full_','1','.jpg')">deor_viewer</div>
<div onclick="viewer_right('deor','films_deor_ip_full_','1','.jpg')">viewer_right</div>