Javascript - Удалить абзац, содержащий определенный текст внутри

У меня есть абзац, как показано ниже, и я хочу удалить абзац, содержащий текст «делать».

Ничего не делать.

Я не знаю.

Попробуй что-нибудь.

Поймай меня, если сможешь.

Я ожидаю результат

Попробуй что-нибудь.

Поймай меня, если сможешь.

Ванильный javascript, а не jQuery. Спасибо.

что ты уже испробовал?

tobifasc 27.09.2018 12:01

Имейте в виду, что SO - это не сайт запроса кода. Основная идея - понять проблемы и решить проблемы с помощью имеющегося у вас кода.

Isac 27.09.2018 12:05
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
2
558
5

Ответы 5

Вы пытаетесь сказать, что у вас есть

тег для каждой строки, которую вы указали в сообщении,

тогда вы можете следовать,

$("p").each(function(){
    if ($(this).text().indexOf("do") != -1)
     $(this).attr("hidden", true);
// Or you can remove, by accessing parent element and remove this from the 
parent

})

})

Если я правильно понимаю, вам может понадобиться что-то вроде этого:

els = document.getElementsByTagName('p');
for(let i = 0; i < els.length; i++){
  if (els[i].innerHTML.includes('do')){
    els[i].parentElement.removeChild(els[i]);
  }
}
var p = document.querySelectorAll('p');

for(let i = 0; i < p.length; i++)
    {
       // remove toLowerCase if you want case sensitive.
       if (p[i].textContent.toLowerCase().indexOf('do') != -1)
       {
          p[i].remove(i);
       }
    }

приведенный выше код должен достичь того, что вы хотели сделать.

function upd(){

    const ps = document.querySelectorAll('p')

    ps.forEach(function(p){
        if (p.textContent.toLowerCase().includes('do')) {
            p.remove()
        }
    })
 }
<p>Do nothing.</p>
<p>I do not know.</p>
<p>Try something.</p>
<p>Catch me, if you can.</p>

<h4>I expect the result is</h4>

<p>Try something.</p>
<p>Catch me, if you can.</p>

<button onClick = "upd()">update</button>

Это удалит все абзацы, содержащие "the". Просто очень простой пример, как это сделать.

HTML

<!DOCTYPE html>
<html>
<head>
  <meta charset = "UTF-8">
  <link rel = "stylesheet" href = "style.css">
  <title>todo-app</title>
</head>
<body>
  <div class = "div1">
    <h1>This is our todo-app</h1>
    <h2>Hello there!</h2>
  </div>
  <p>Paragraph 1</p>
  <p>Paragraph the 2</p>
  <p>Paragraph 3</p>
  <p>Paragraph the 4</p>
  <p>Paragraph 5</p>
  <script src = "todo-app.js"></script>
</body>
</html>

todo-app.js

const ps = document.querySelectorAll('p');
ps.forEach(p =>{
  if (p.textContent.includes('the')){
    p.remove();
  }
})

Другие вопросы по теме