jQuery替换元素并访问替换元素

时间:2013-05-16 14:23:00

标签: jquery

我正在学习jQuery。我想添加一项功能,以便当用户点击具有指定类名的td时,我想将其更改为select选项。有了这个选定的值,我想更新我的数据库。

直到这里没关系。我可以将td更改为input但是,我无法将更改事件的事件添加到该替换元素。

这就是我所拥有的:

(function($) {

    var _defaults = {
        some : "defaults",
    };

    $.fn.changetoi = function(options) {

        var _opts = $.extend({}, _defaults, options);

        $(this).on('click', function() {
            var replaced = $('<select name="status" class="changer"><option>Test</option></select>');
            $(this).replaceWith(replaced);
        });

        $('.changer').on('change', function() { //here I'm try to access the changed element
            var value = $(".changer option:selected").text();
            //post the selected value
            $.post("test.php", {
                "value" : value
            }, function(data) {
                //whatever and
                $(this).replaceWith(value);
            });
        });

    };

    $('.change').changetoi();
})(jQuery);

这里是表,测试和其他http://jsfiddle.net/HZvH8/4/

的小提琴

1 个答案:

答案 0 :(得分:2)

您需要像这样制作处理程序:

$(document).on('change', '.changer', function() {

此元素在DOM就绪时不存在,因此您将change()事件绑定到那里的元素。

演示:http://jsfiddle.net/tymeJV/HZvH8/5/