javascript - 使函数参数超出范围的问题

标签 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();
});

最佳答案

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

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

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

关于javascript - 使函数参数超出范围的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23471302/

相关文章:

javascript - 使用 Jasmine 测试 ajax 请求内的 Angular 范围变量

javascript - socket.io 客户端与 socket.io

javascript - 为什么 JSFiddle 不打印这个对象?

javascript - 一旦 Javascript 中任何 HTML 元素的值发生变化,就更新 Canvas

javascript - 使用宽度和高度将表格对齐到中心

javascript - 动画不透明度隐藏/显示

javascript - 带偏移量的 javascript 数组的 Node 缓冲区

javascript - slider 显示无法正常工作 - 似乎找不到问题

jquery - 查找元素是否溢出其容器

javascript - 这两种看似相似的闭包类型有什么区别?