在范围之外获取函数参数的问题

时间:2014-05-05 11:26:26

标签: javascript jquery

我想在范围之外获得函数参数,但是有一些问题要做。

我试图通过此代码获取值:var text = $.commentString.text();

Live Demo

JQuery的:

function addComment(commentString) {

    var container = $('#divComments');
    var inputs = container.find('label');
    var id = inputs.length + 1;

    var div = $('<div />', {
        class: 'CommentStyle'
    });

    $('<label />', {
        id: 'comment' + id,
        text: commentString
    }).appendTo(div);


    var $edit = $('<p />', {
        class: 'edit',
        text: 'Edit'
    }).addClass('edit').appendTo(div);

    div.appendTo(container);

}

$('#divComments').on('click','.edit',function () {
    var text = $.commentString.text();
});

3 个答案:

答案 0 :(得分:1)

在JavaScript中,不可能访问声明它的范围之外的变量。你可以在函数之外声明变量,但每次函数运行时它都会被覆盖 - 它看起来不像这就是你所追求的行为。

在这个例子中你可以做的是使用jQuery遍历DOM并找到你需要的文本。

$('#divComments').on('click','.edit',function () {
  var text = $(this).parents(".CommentStyle").find("label").text();
});

答案 1 :(得分:0)

然后只在函数外声明一个变量:

var someCommentString;

function addComment(commentString) {
    someCommentString = commentString;
...

答案 2 :(得分:0)

或者您可以尝试其他方式来获取价值,但不确定其是否正确

$('#divComments').on('click','.edit',function () {
$(this).prev().text()
});