如何使替换代码工作

How do I make my replace code work?

本文关键字:工作 代码 替换 何使      更新时间:2023-09-26

我正在尝试制作一个基本的替换代码,每次都替换匹配项。

(function($) {
    $.fn.replace = function(obj) {
        var a = $(this).html();
        for (var i in obj) {
            $(this).html(a.replace(i, obj[i]));
        }
    };
    $('#myDiv').replace({
        ':')': '<img src="http://bit.ly/dbtoez" />'
    });
})(jQuery);​

但它不起作用。此外,当我将更多属性放入对象中以替换div 时,它不起作用。img 元素是一个笑脸。

你基本上扔掉了所有的替代品,除了最后一个。修改循环中的a并在最后更新 HTML:

var a = $(this).html();
for (var i in obj) {
    a = a.replace(new RegExp(i, 'g'), obj[i]);
}
$(this).html(a);

小提琴:http://jsfiddle.net/iambriansreed/kCtLh/

(function($) {
    $.fn.replace = function(obj) {
        var a = $(this).html();
        for (var i in obj){
           a = a.replace(new RegExp(i.replace(/([.?*+^$[']''(){}|-])/g, "''$1"), "g"), obj[i]);
        }
        return $(this).html(a);
    };
})(jQuery);
$('#myDiv').replace({
    ':)': '<img src="http://bit.ly/dbtoez" />'
});​

最终版本。它为您转义了所有字符。:)