Попробуйте это: (заменяет a
на z
везде внутри элемента с id="main"
)
$('#main, #main *').contents().each(function() {
if (this.nodeType == 3)
this.nodeValue = this.nodeValue.replace(/a/g, 'z');
});
Вы можете изменить первый бит на $('*')
, но это рискованно и, вероятно, медленно, и на этом тесте вы можете видеть, что он меняет материал в <style>
, который генерируется jsfiddle ( так что он, вероятно, сделает замену и во всех <script>
s).
Обратите внимание, что nodeType == 3
говорит jQuery возвращать только текстовые элементы. Вы должны использовать 3
вместо константы Node.TEXT_NODE
, потому что IE 7 не распознает ее. (неожиданный сюрприз ..)
отредактировано для отражения предложений idealmachine