Document.createNodeIterator()‎

من موسوعة حسوب

يُعيد التّابع Document.createNodeIterator()‎ كائنًا جديدًا من النّوع NodeIterator.

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

var nodeIterator = document.createNodeIterator(root, whatToShow, filter);

المعاملات

root

العقدة الجذر التي سيبدأ منها مرور الكائن NodeIterator.

whatToShow

قيمة اختياريّةٌ من النّوع unsigned long تُمثّل قيمة bitmask تُنشأُ عبر دمج الخاصيّات الثّابتة الخاصّة بالكائن NodeFilter. وهي طريقة جيّدة لترشيح بعض أنواع العقد. القيمة الافتراضيّة هي 0xFFFFFFFF وتُمثّل الثّابتة SHOW_ALL.

الثّابتة القيمة الرّقميّة الوصف
NodeFilter.SHOW_ALL ‎-1 (وهي القيمة القصوى للنّوع unsigned long) اعرض جميع العقد.
NodeFilter.SHOW_ATTRIBUTE 2 قيمةٌ مُهملَة تعرض عقد الخصائص من النّوع Attr.
NodeFilter.SHOW_CDATA_SECTION 8 قيمةٌ مُهملَة تعرض العقد من النّوع CDATASection.
NodeFilter.SHOW_COMMENT 128 تعرض العقد من النّوع Comment.
NodeFilter.SHOW_DOCUMENT 256 تعرض العقد من النّوع Document.
NodeFilter.SHOW_DOCUMENT_FRAGMENT 1024 تعرض العقد من النّوع DocumentFragment.
NodeFilter.SHOW_DOCUMENT_TYPE 512 تعرض العقد من النّوع DocumentType.
NodeFilter.SHOW_ELEMENT 1 تعرض العقد من النّوع Element.
NodeFilter.SHOW_ENTITY 32 قيمةٌ مُهملَة تعرض العقد من النّوع Entity.
NodeFilter.SHOW_ENTITY_REFERENCE 16 قيمةٌ مُهملَة تعرض العقد من النّوع EntityReference.
NodeFilter.SHOW_NOTATION 2048 قيمةٌ مُهملَة تعرض العقد من النّوع Notation.
NodeFilter.SHOW_PROCESSING_INSTRUCTION 64 تعرض العقد من النّوع ProcessingInstruction.
NodeFilter.SHOW_TEXT 4 تعرض العقد من النّوع Text.

filter

مُعاملٌ اختياريّ يُمثّل كائنًا يُطبِّق الواجهة NodeFilter؛ يُستدعى التّابع acceptNode()‎ الخاصّ بهذه الواجهة لكلّ عقدة في الشّجرة الفرعيّة المؤسّسة على الجذر والتي تُقبَل حسب ما حُدِّد من طرف المُعامل whatToShow ويُحدّد إضافة العقدة إلى قائمة العقد التكراريّة (iterable) من عدمه (يُمكن استعمال دالّة ردّ نداءٍ [callback function] بسيطة كذلك للحصول على نفس النّتيجة). يجب على هذا التّابع أن يُرجع أحد القيم NodeFilter.FILTER_ACCEPT أو NodeFilter.FILTER_REJECT أو NodeFilter.FILTER_SKIP . انظر المثال.

أمثلة

var nodeIterator = document.createNodeIterator(
    document.body,
    NodeFilter.SHOW_ELEMENT,
    function(node) {
        return node.nodeName.toLowerCase() === 'p' ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;
    }
);
var pars = [];
var currentNode;

while (currentNode = nodeIterator.nextNode()) {
  pars.push(currentNode);
}

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

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

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