Мне трудно понять, как запустить метод для определенных элементов / типов узлов, но не для других.
Например, вот какой-то 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-change. Конечный результат должен выглядеть примерно так:
<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>
Я не знаю ни одного способа выбора родителя, не запустив метод для его потомка. Любая помощь будет оценена. Спасибо!
Редактировать: Здесь используется код Пауло, а не работает:
http://jsbin.com/usaxa
Редактировать @ Джефф Фрикадельки Ян:
Привет, используя замену на месте, он выводит текст, а не HTML:
http://jsbin.com/idina
Я также не смог заставить работать другие методы:
http://jsbin.com/aguca
Не могли бы вы привести пример?
Спасибо!