[英]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.