簡體   English   中英

使函數參數超出范圍的問題

[英]Problems to get functions argument outside the scope

我想讓函數參數超出范圍,但是這樣做有一些問題。

我試圖通過以下代碼獲取值: var text = $.commentString.text();

現場演示

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

然后只需在函數外部聲明一個變量:

var someCommentString;

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

或者您可以嘗試其他方式獲取價值,但不確定其正確與否

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM