Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   replace Удалить часть HTML кода(элемент <table> полностью) (https://javascript.ru/forum/misc/74386-replace-udalit-chast-html-koda-ehlement-table-polnostyu.html)

azmuzi 06.07.2018 09:32

replace Удалить часть HTML кода(элемент <table> полностью)
 
Есть строка
var str=[HTML]'<table class="41" align="center" padding="5px" width="50%" height="200px"><tbody><tr><td><span>Это удалить</span></td></tr></tbody></table><table class="51" align="center" padding="5px" width="50%" height="200px"><tbody><tr><td><span>А это оставить</span></td></tr></tbody></table>'[/HTML]
var delstr = '<table class="41" align="center" padding="5px" width="50%" height="200px"><tbody><tr><td><span>Это удалить</span></td></tr></tbody></table>'
var result = str.replace(delstr, "");

Выводит вот такой результат(
<table class="41" align="center" padding="5px" width="50%" height="200px"><tr><td><span>Это удалить</span></td></tr></table><table class="51" align="center" padding="5px" width="50%" height="200px"><tbody><tr><td><span>А это оставить</span></td></tr></tbody></table>

Что не так? Он только
'<tbody>'
,
'</tbody>'
убирает

Nexus 06.07.2018 09:39

По-моему все работает, как вы и хотели.
var str='<table class="41" align="center" padding="5px" width="50%" height="200px"><tbody><tr><td><span>Это удалить</span></td></tr></tbody></table>'
	   +'<table class="51" align="center" padding="5px" width="50%" height="200px"><tbody><tr><td><span>А это оставить</span></td></tr></tbody></table>';

var delstr = '<table class="41" align="center" padding="5px" width="50%" height="200px"><tbody><tr><td><span>Это удалить</span></td></tr></tbody></table>'
var result=str.replace(delstr, "");

alert(result);

azmuzi 06.07.2018 09:57

Просто я тут пример привела, а когда я все эти строки отправляю переменными, работает не так как надо

var delstr = $('.' + cancel)[0].outerHTML;
    console.log(delstr);
    var result = str.replace(delstr, "");


Если селектором любой элемент вставить, то результат именно такой получается

Nexus 06.07.2018 10:00

azmuzi, не проще удалить сам элемент, а не корячиться с текстом?
$('.' + cancel).find('table:first').remove();

Alexandroppolus 06.07.2018 10:02

Цитата:

Сообщение от azmuzi
outerHTML

строка, полученная так, может не совпадать с исходной строкой (с той, которую предполагается вырезать)

azmuzi 06.07.2018 11:01

мне надо не просто убрать его со страницы, но и чтоб исчез из кода...

j0hnik 06.07.2018 12:24

Случайное самоубийство в JS
<div>222222222</div>
<script>
document.querySelector('div').outerHTML = '';
document.querySelector('div')? alert('div жив'):alert('div RIP');
</script>


Часовой пояс GMT +3, время: 06:49.