Написание плагина jquery для замены текста - PullRequest
1 голос
/ 02 ноября 2009

Скажем, гипотетически я хочу заменить все 'a' в строке на 'b'

'abc' -> 'bbc'

Я хочу запустить это на разных строках:

var str1= 'abc'
var str2= 'adf'
var str3= 'abvxvb'
var str4= 'ae54'

Я пытаюсь написать плагин jquery, который делает это.

Так что я могу сделать str1.a_to_b(); и получить желаемый результат. (На самом деле иметь синтаксис в другой форме тоже хорошо).

С моим синтаксисом что-то не так:

jQuery.fn.a_to_b = function(expr) {
    return this.each(function() {
        this = this
        .replace(/a/ig, "b");
    });
};

Спасибо.

Ответы [ 2 ]

4 голосов
/ 02 ноября 2009

Методы jQuery (прикрепленные к jQuery.fn) работают с элементами html, а не со строками. Вам нужна статическая функция (которую вы прикрепляете к самому jQuery)

jQuery.aToB = function(str) {
   return str.replace(/a/g, "b");
}

alert($.aToB("abc"))

В качестве альтернативы вы можете расширить String.prototype (не рекомендуется, поскольку это потенциальный источник конфликта)

String.prototype.toB = function() {
   return this.replace(/a/g, "b");
}

alert("abc".toB())
0 голосов
/ 02 ноября 2009

С другим синтаксисом, возможно, вы можете использовать следующее

jQuery.a_to_b = function(str) {
    return str.replace(/a/ig, "b");
};

И после этого вы можете позвонить

var str1= 'abc';

str1 = jQuery.a_to_b(str1);

и вы получите новое значение, хранящееся в str1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...