Document.getElementsByClassName()‎

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث

يُعيد التّابع Document.getElementsByClassName()‎ كائنًا مُشابهًا للمصفوفات يحتوي على جميع العناصر الأولاد التي تحمل نفس اسم الصّنف (class name) المُعطى. عند استدعائه على كائن المُستند، فسيُبحَثُ في كامل المُستند، ما يشمل العقدة الجذر. يُمكن كذلك استدعاء التّابع getElementsByClassName()‎ على أي عنصر؛ وسيُعيد العناصر الأولاد للعنصر الجذر المُحدَّد ذات أسماء الأصناف المعطاة.

البنية العامة

var elements = document.getElementsByClassName(names);
// أو
var elements = rootElement.getElementsByClassName(names);

elements‎

كائنٌ حيّ من النّوع HTMLCollection‎ الذي يُمثّل مجموعة العناصِر التي وُجدت.

names‎

سلسلةٌ نصيّةٌ تُمثّل قائمة أسماء الأصناف المرغوب البحث عنها مفصولة بمساحة بيضاء (whitespace).

getElementsByClassName‎

يُمكن استدعاء هذا التّابع على أي عنصرٍ، ليس فقط على المُستند. وسيُستخدم العنصر الذي استدعيَ عليه بمثابة جذر البحث (أي نقطة بدايته).

أمثلة

الحصول على جميع العناصر ذات الصّنف 'test':

document.getElementsByClassName('test');

الحصول على جميع العناصر ذات الصّنف 'test' والصّنف 'red' في نفس الوقت:

document.getElementsByClassName('red test');

الحصول على جميع العناصر ذات الصّنف 'test' الموجودة داخل العنصر ذو المعرِّف'main' :

document.getElementById('main').getElementsByClassName('test');

يُمكننا كذلك استخدام توابع Array.prototype‎ على أي كائن HTMLCollection‎ عبر تمريره إلى قيمة الكائن this الخاصّ بالتّابع. في المثال التّالي، نجد جميع العناصِر div‎ ذات الصّنف 'test':

var testElements = document.getElementsByClassName('test');
var testDivs = Array.prototype.filter.call(testElements, function(testElement){
    return testElement.nodeName === 'DIV';
});

الوصول إلى العنصر الأول عبر اللاحقة [0]:

<!doctype html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <div id="parent-id">
    <p>hello word1</p>
    <p class="test">hello word2</p>
    <p>hello word3</p>
    <p>hello word4</p>
  </div>
  <script>
    var parentDOM = document.getElementById("parent-id");

    var test=parentDOM.getElementsByClassName("test");// هنا، لم نصل إلى العنصر الهدف بعد
    console.log(test);//HTMLCollection[1]

    var testTarget=parentDOM.getElementsByClassName("test")[0];// هنا نصل إلى العنصر
    console.log(testTarget);//<p class="test">hello word2</p>
  </script>
</body>
</html>

دعم المتصفحات

الميزة Chrome Firefox Internet Explorer Opera Safari
الدعم الأساسي نعم 3 9 نعم نعم

مصادر ومواصفات