Мне сложно понять, как запустить метод для определенных элементов/nodetypes, но не для других.JQuery: запустить метод для определенных элементов, но не для других.
Например вот некоторые HTML:
<div id="parent">
<div class="subparent">Changing Text
<div class="no-change">Changing Text</div>
</div>
<div class="subparent">Changing Text</div>
<div class="child">Changing Text
<div class="no-change">Changing Text</div>
</div>
<div class="subparent">Changing Text</div>
</div>
Мой метод что-то вроде этого:
jQuery.fn.changingtext = function(expr) {
return this.each(function() {
this.innerHTML = this.innerHTML
.replace(/Changing Text/ig, "Edited!")
});
};
Теперь я хочу, чтобы изменить текст все, кроме того, что находится в div.no-изменения. Конечный результат должен быть что-то вроде этого:
<div id="parent">
<div class="subparent">Edited!
<div class="no-change">Changing Text</div>
</div>
<div class="subparent">Edited!</div>
<div class="child">Edited!
<div class="no-change">Changing Text</div>
</div>
<div class="subparent">Edited!</div>
</div>
Я не знаю ни одного способа, чтобы выбрать один из родителей не работает также метод на своем ребенке. Любая помощь будет оценена по достоинству. Благодаря!
Edit: Здесь используется код Пауло и не работает: http://jsbin.com/usaxa
Edit @ Джефф фрикадельки Ян: Привет, с помощью INPLACE замены он выводит в виде текста, а не HTML: http://jsbin.com/idina
Я также не смог получить другие методы работы: http://jsbin.com/aguca
Не могли бы вы привести пример, пожалуйста?
Спасибо!
Спасибо большое! Отлично! Он выходит как текстовый узел, как я могу сделать конечный результат HTML? Спасибо! – Mark
Конечным результатом является уже HTML. Таким образом, вы сможете подключить другие функции jQuery после вызова плагина. –
Привет, спасибо, извините, я не имею в виду родительский элемент. Я имею в виду замененный тип узла. Например, что, если моя замена была/Изменение (Текст)/g, «