在jquery中的内部函数中创建全局$(this)

时间:2014-07-18 12:39:46

标签: jquery

我正在使用的代码是

$(document).ready(function() {
    $('input:button').click(function() {
        var del_val = $(this).attr('name');
        $.post('assets/php/contact_allread.php', {val:del_val}, function(data) {
            $(this).attr('value', data);
        });
    });
});

$(this)内的上述代码$.post中无效。我必须将 contact_allread.php 的值存储到用户点击的按钮的值。

有许多具有相同ID的按钮,因此我使用$(this)。任何解决方案?

3 个答案:

答案 0 :(得分:0)

试试这个:创建一个变量$this来存储点击按钮的$(this)实例。

$(document).ready(function() {
    $('input:button').click(function() {
        var $this = $(this);
        var del_val = $this.attr('name');
        $.post('assets/php/contact_allread.php', {val:del_val}, function(data) {
            $this.attr('value', data);
        });
    });
});

答案 1 :(得分:0)

尝试将$(this)缓存在ajax调用之外,并在其中使用该缓存变量,

$(document).ready(function() {
    $('input:button').click(function() {
        var $this = $(this);
        var del_val = $this.attr('name');
        $.post('assets/php/contact_allread.php', {val:del_val}, function(data) {
            $this.attr('value', data);
        });
    });
});

答案 2 :(得分:0)

你可能需要这个:

$(document).ready(function() {
    $('input:button').click(function() {
        var _this = $(this);
        var del_val = $this.attr('name');
        $.post('assets/php/contact_allread.php', {val:del_val}, function(data) {
            _this.val(data);
        });
    });
});