Удалить текст на странице HTML не внутри тега элемента - PullRequest
1 голос
/ 09 июля 2020

Это, вероятно, вопрос очень новичка, но не уверен, как этого добиться. Существует страница html, которая отображается следующим образом:

<html>
   <body>
      <div><p>Hello!</p></div>
      <"
   </body>
</html>

Мой вопрос: есть ли способ удалить или покрасить <", который находится за пределами элемента html, через javascript или css?

Ответы [ 4 ]

3 голосов
/ 09 июля 2020

Преобразование ответа Пабло Салазара на использование ванили JavaScript, нет необходимости в огромной библиотеке. Также идет с опцией "раскрасьте".

[...document.body.childNodes].filter(n=>n.nodeType === Node.TEXT_NODE)
    .forEach(n=>{
        const wrapper = document.createElement('span');
        wrapper.style.color = 'red';
        n.replaceWith(wrapper);
        wrapper.append(n);
    });
 <div><p>Hello!</p></div>
<"
1 голос
/ 09 июля 2020

Вы можете сделать это с помощью Jquery, используя это:

$('body').contents().filter(function(){ return this.nodeType != 1; }).remove();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<html>
 <div><p>Hello!</p></div>
 
 <"

</html>
0 голосов
/ 09 июля 2020

Вы можете использовать свойство nextSibling, а затем .remove () mehtod

document.querySelector('div').nextSibling.remove();
<div>
    <p>Hello!</p>
</div>
<" 
0 голосов
/ 09 июля 2020

Опасный путь

var body_element = document.querySelector('body');
body_element.innerHTML = body_element.innerHTML.replace(/(&lt;"|<")/, '');
<html>
   <body>
      <div><p>Hello!</p></div>
      <"
   </body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...