在另一个函数中调用一个参数?

时间:2010-07-12 05:10:01

标签: javascript

实际上我想将url和id从一个fn带到另一个fn,无论这种方法是否有效。

function addElement(url, id) {
    alert(url);
    var main = document.getElementById('mainwidget');
    main.innerHTML = "<iframe src=" + url + " align='left' height='1060px' width='576px' scrolling='no'  frameborder='0' id='lodex'></iframe>";
    alert("google");
    addUrl(url, id);
}
function add() {
    addUrl(url, id)
    alert("id" + id);
    document.getElementById("Listsample").innerHTML = "<a href='#' onclick='addUrl(" + url + ");' id='cricket' tabindex='1' name='cricket'>" + id + "</a>";
}

1 个答案:

答案 0 :(得分:1)

您需要以某种方式共享信息,因为 variables 仅在其功能的 scope 中可用。最简单的方法是定义全局变量。

var url, id; // global

function addElement(_url, _id) {
    url = _url;
    id  = _id;
    alert(url);
    var main = document.getElementById('mainwidget');
    main.innerHTML = "<iframe>...</iframe>";
    alert("google");
    addUrl(url, id);
},

function add() {
    addUrl(url, id)
    alert("id" + id);
    document.getElementById("Listsample").innerHTML = "<a>...</a>";
}

请注意,它们不需要是全局的。您可以将此模块包装到自己的 scope

(function() {

/// code goes here

})();

或者您也可以将整个代码整理到一个对象中( encapsulation )。

var addy = {

    url: null, 
    id: null,

    addElement: function(url, id) {
        this.url = url;
        this.id  = id;
        alert(url);
        var main = document.getElementById('mainwidget');
        main.innerHTML = "<iframe>...</iframe>";
        alert("google");
        addUrl(url, id);
    },

    add: function() {
        addUrl(this.url, this.id);
        alert("id" + this.id);
        document.getElementById("Listsample").innerHTML = "<a>...</a>";
    }
};

相关问题