Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

ซ่อน Div ที่มีข้อความเฉพาะด้วย JavaScript

ใช้ getElementsByClassName() ดึง Element แล้ววนลูปตรวจสอบ InnerHTML ถ้าตรงเงื่อนไขให้ style.display = 'none'

ตัวอย่าง

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Hide Div by Text</title>
</head>
<body>
  <div class="block"> header </div>
  <div class="block"> content </div>
  <div class="block"> footer </div>
  <script>
    let attribute = document.getElementsByClassName('block');
    for (let i = 0; i < attribute.length; i++) {
      let impDiv = attribute[i];
      let value = impDiv.innerHTML.trim();
      if (value === 'header' || value === 'footer') {
        impDiv.style.display = 'none';
      }
    }
  </script>
</body>
</html>

คำอธิบาย

  • getElementsByClassName('block') คืน HTMLCollection (Live Collection)
  • วนลูปด้วย for ปกติ (ไม่ใช่ forEach เพราะเป็น Array-like)
  • innerHTML.trim() ตัด Whitespace หน้า/หลัง
  • style.display = 'none' ซ่อน Element เลย (ไม่ครอบพื้นที่)
  • วิธีสมัยใหม่: document.querySelectorAll('.block').forEach(el => ...)

ผลลัพธ์

แสดงเฉพาะ "content" | "header" และ "footer" ถูกซ่อน